【问题标题】:Read first line of XLS without specific sheet name读取没有特定工作表名称的 XLS 的第一行
【发布时间】:2012-11-01 12:06:18
【问题描述】:

我找到了如何从具有特定工作表名称的 Excel 文件中读取第一行,但在我的情况下,我必须读取第一张工作表的第一行。

我怎样才能意识到这一点,或者我必须使用 CSV 而不是 XLS?

【问题讨论】:

    标签: c# excel


    【解决方案1】:

    你看过EPPlus library吗?它使处理 excel 文件变得非常容易。

    以下是使用 EPPlus 的方法:

    FileInfo existingFile = new FileInfo("yourfilepathname");
    
    using (var package = new ExcelPackage(existingFile))
    {
        ExcelWorkbook workbook = package.Workbook;
        if (workbook != null && workbook.Worksheets.Count > 0)
        {
            //Gets the first worksheet. You can use index also to select your worksheet.
            ExcelWorksheet worksheet = workbook.Worksheets.First();
    
            int rowIndex = 0;
            int colIndex = 0;        
            //To get the first cell:
            var cellValue = worksheet.Cells[rowIndex, colIndex].Value;
    
    
            //YOU CAN ALSO DO A LOOP TO GET ALL VALUES FROM THE FIRST ROW.
        }
    }
    

    NPOI 是另一个不错的选择,它也可以处理 XLS 文件。

    这是 NPOI 代码的 sn-p:

    HSSFWorkbook _hssfworkbook = new HSSFWorkbook(OpenFileStream(filePath));
    //Getting the sheet
    _currentSheet = _hssfworkbook.GetSheetAt(0);
    //Getting the row:
    _row = CurrentSheet.GetRow(0);
    //Getting the cell
    _cell = _row.GetCell(0);
    

    【讨论】:

    • 它是否支持 Excel 97 文件? (XLS)
    • 其实没有。在这种情况下还有另一个不错的选择。我会补充答案。
    【解决方案2】:

    你考虑过SpreadsheetLight吗?以下是你的做法:

    SLDocument sl = new SLDocument("YourExcelFile.xlsx", "TheSheetName");
    string FirstLine = sl.GetCellValueAsString("A1");
    sl.CloseWithoutSaving();
    

    免责声明:我编写了 SpreadsheetLight。

    【讨论】:

      猜你喜欢
      • 2020-02-08
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 2022-10-06
      相关资源
      最近更新 更多