0

SmartSheet API を v1 から v2 に更新しようとしていますが、以下のコードで問題が発生しています。

コードは選択したシートの行を返しますが、行内のすべてのセルの「ColumnType」プロパティは NULL です。

これを返すには、それを包含として指定する必要があることを知っています-私は持っていると信じています。

Dim sheet As Sheet = smartsheet.SheetResources.GetSheet(curSheet.Id, New RowInclusion() {RowInclusion.COLUMN_TYPE, RowInclusion.COLUMNS}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)

For Each Row As Row In sheet.Rows
If Row.ParentRowNumber Is Nothing Then
Dim i As Integer = 0
Dim colType As ColumnType
If Not Row.Cells(i).ColumnType = ColumnType.TEXT_NUMBER Then
'Do some stuff here...
End if
Next

どんな助けでも素晴らしいでしょう。

ありがとう、スティーブ

4

1 に答える 1

1

簡単な答えは、https ://github.com/smartsheet-platform/smartsheet-csharp-sdk/pull/60 から最新の SDK を取得し、GetSheet を次のように更新するだけです。

Dim sheet As Sheet = client.SheetResources.GetSheet(SHEETID, New SheetLevelInclusion() {SheetLevelInclusion.COLUMN_TYPE}, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing)

SheetLevelInclusionではなくの使用に注意してくださいRowInclusion。あなたはすべて準備ができているはずです。

詳細を気にするなら、より長い答えは...メソッドは、配列/IEnumerable を2 番目の引数としてGetSheet受け入れません。RowInclusionの array/IEnumerableが必要SheetLevelExclusionです。C# では、C# が のジェネリック型パラメーターに対してより厳密な型チェックを課すため、同じ呼び出し呼び出しが失敗しますIEnumerableEnumただし、型間の暗黙的な変換と配列 (および のような同様の型) の緩やかな変換に関するVisual Basic の寛大さによりIEnumerable、引数が array/IEnumerableで要素が列挙型。この場合、Visual Basic は実際にRowInclusion値を基になる数値に変換し (Enum は常に基になる数値型によって暗黙的または明示的にサポートされます)、これらの値をSheetLevelExclusion同じ基になる数値に対応する値に変換して、GetSheet メソッドを呼び出すことができます。

ここでのもう 1 つの複雑な点は、SDK が使用可能なSheetLevelExclusion値として COLUMN_TYPE を持っていなかったことです。したがって、上記でリンクしたプルリクエスト/ブランチはそれを追加します。ここでの私の簡単なテストでは、それが機能しました。

于 2016-03-12T09:11:01.697 に答える