【发布时间】:2019-07-08 17:42:50
【问题描述】:
我正在尝试使用电子表格中的列名称填充组合框。
我正在使用电子表格灯库。我可以使用以下代码设置单元格值,其中A 指的是列名,1 指的是行名。 (我说的对吗?)
但是如何获取所有工作表中所有列的名称?
SLDocument sl = new SLDocument();
sl.SetCellValue("A1", true);
【问题讨论】:
标签: c# excel spreadsheetlight
我正在尝试使用电子表格中的列名称填充组合框。
我正在使用电子表格灯库。我可以使用以下代码设置单元格值,其中A 指的是列名,1 指的是行名。 (我说的对吗?)
但是如何获取所有工作表中所有列的名称?
SLDocument sl = new SLDocument();
sl.SetCellValue("A1", true);
【问题讨论】:
标签: c# excel spreadsheetlight
首先,使用SLWorksheetStatistics获取最后一列索引:
SLWorksheetStatistics stats = sl.GetWorksheetStatistics();
int endColumnIndex = stats.EndColumnIndex;
然后遍历列:
var headers = new List<string>();
for (int i = 1; i <= endColumnIndex; i++){
headers.Add(sl.GetCellValueAsString(1, i));
}
以下将打印列列表中的值“foo”和“bar”:
var fileName = "test.xlsx";
var sl = new SLDocument(fileName);
foreach (var sheetName in sl.GetWorksheetNames())
{
SLDocument sheet = new SLDocument(fileName, sheetName);
sheet.SetCellValue("A1", "foo");
sheet.SetCellValue("B1", "bar");
SLWorksheetStatistics stats = sheet.GetWorksheetStatistics();
int endColumnIndex = stats.EndColumnIndex;
var headers = new List<string>();
for (int i = 1; i <= endColumnIndex; i++)
{
headers.Add(sheet.GetCellValueAsString(1, i));
}
foreach (var column in headers)
{
Console.WriteLine(column);
}
Console.ReadKey();
}
【讨论】:
foreach (var column in headers) { comboBox1.Items.Add(column); } 填充了组合框
stats.EndowIndex 更正为 stats.EndColumnIndex 并添加了一个完美运行的解决方案
for 循环遍历每个工作表并运行上述代码