获取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(); 
} 
+0

谢谢......请检查并取回。 – techno

+0

我想你的代码来填充COMBOX,而不是返回列名..组合框返回file..I的填充像这样'的foreach(VAR列标题)comboxbox名称 { comboBox1。 Items.Add(列); }' – techno

+0

我已将'stats.EndowIndex'更正为'stats.EndColumnIndex'并添加了一个完美运行的解决方案 – Chawin