我正在尝试使用C#SDK从Smartsheet中读取数据。我可以获取工作表信息,但ColumnId等列详细信息是Null。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Smartsheet.Api;
using Smartsheet.Api.Models;
using Smartsheet.Api.OAuth;
namespace SmartSheetTest
{
class Program
{
static void Main(string[] args)
{
string token = "MY_TOKEN";
long sheetid = MY_SHEET_ID;
SmartsheetClient sc = new SmartsheetBuilder().SetAccessToken(token).Build();
Sheet sheet = sc.SheetResources.GetSheet(sheetid, null, null, null, null, null, null, null);
Console.WriteLine("Done");
Console.ReadLine();
}
}
}
结果如下。仅填充列类型和标题。其他属性为Null
如何获取列属性?
SDK版本:2.2.1
答案 0 :(得分:1)
由sheet
响应填充的GetSheet
对象中的每个列应始终包含以下属性的值,至少:
您在调试模式下看到的某些其他属性完全有可能是设计null
,但响应中的每个column
都应始终包含Id
随后可以在GetColumn
请求中使用的属性值,以检索所有列属性值。
我无法重现您的问题。我已经使用您发布的代码(使用Smartsheet C#SDK 2.2.1版)来检索工作表并检查sheet
对象中由{{1}填充的多个列的属性响应。无论我检索哪个工作表或在调试模式下检查哪个列,都会填充上面列出的属性,如此屏幕截图所示:
有关故障排除的一些建议:
使用其他工作表测试此方案。如果您不能使用其他工作表重新解决问题,那么可能会有一个特定的内容阻止GetSheet
属性在Id
响应中填充。
如果您可以使用其他工作表重新解决此问题,则可能尝试使用此示例应用程序测试此相同的方案:https://github.com/smartsheet-samples/csharp-read-write-sheet。注意 - 您需要将Smartsheet C#SDK NuGet包更新到2.2.1版,以完全模仿您想要测试的场景。 (我使用此示例应用程序尝试重新解决您的问题(不成功)。
答案 1 :(得分:0)
我知道这已经很晚了,但您可以通过访问sheet.Columns属性来遍历列。我用它来获取ColumnId和Title,这是标题字符串文本。
foreach (Column column in sheet.Columns)
Debug.WriteLine(column.Title + " " + column.Id));