4

使用工具 SpreadSheetLight我找不到如何读取电子表格文件的行。特别是表 1。

我遇到的两个问题是

  1. 我看不到获得行数的方法
  2. 我无法看到获取列索引这是我的代码

    public void ParseExcelFile(FileInfo file) 
    {
        using (SLDocument sl = new SLDocument())
        {
            FileStream fs = new FileStream(file.FullName, FileMode.Open);
    
            MemoryStream msFirstPass = new MemoryStream();
            SLDocument sheet1 = new SLDocument(fs, "Sheet1");
    
    
            // There is no way that I can see to get the Rows
            foreach(var row in sheet1.Rows)
            {
                foreach(SLCell c in row)
                {
                    // There is no way that I can see to get the Column Index
                    switch(c.Column )
                    {
                        case 1:
                            //Handle data if cell is Column 1
                            break;
                        case 2:
                            //Handle data if cell is Column 2
                            break;
                        case 3:
                            //Handle data if cell is Column 3
                            break;
                    }
                }
            }
    
    
    
        }
    
    }//func
    
4

2 回答 2

3

下面的代码将读取每一行(假设文件是​​ Excel 文件的文件路径):

using (SLDocument sl = new SLDocument())
{
    FileStream fs = new FileStream(file, FileMode.Open);
    SLDocument sheet = new SLDocument(fs, "Table 1");

    SLWorksheetStatistics stats = sheet.GetWorksheetStatistics();
    for (int j = 1; j < stats.EndRowIndex; j++)
    {
        // Get the first column of the row (SLS is a 1-based index)
        var value = sheet.GetCellValueAsString(j, 0);

    }
}
于 2017-07-03T13:26:36.267 回答
1

人们很难回答这个问题,因为 SpreadSheetLight 似乎没有公开可用的代码文档。基于几个假设,我有两个建议:

  1. SLDocument.Row.SLCell 类是否有任何索引属性?如果是这样,您可以从那里获得所需的信息。
  2. 你可以用 for 替换你的 foreach 来跟踪行和列。
于 2014-05-07T04:46:26.310 回答