获取SpreadSheetLight Excel工作表中所有列的名称
问题描述:
我试图用电子表格中列的名称填充组合框。 我正在使用电子表格库。我可以使用以下代码设置单元格值,其中A表示列名,1表示行名。 (我对吧?)获取SpreadSheetLight Excel工作表中所有列的名称
但是我怎样才能得到所有表中的所有列的名称。
SLDocument sl = new SLDocument();
sl.SetCellValue("A1", true);
答
首先,拿到最后一列使用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” 和 “酒吧”从列表中删除:
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();
}
谢谢......请检查并取回。 – techno
我想你的代码来填充COMBOX,而不是返回列名..组合框返回file..I的填充像这样'的foreach(VAR列标题)comboxbox名称 { comboBox1。 Items.Add(列); }' – techno
我已将'stats.EndowIndex'更正为'stats.EndColumnIndex'并添加了一个完美运行的解决方案 – Chawin