从.xls和.ods文件中读取数据

本文关键字:读取 数据 文件 ods xls | 更新日期: 2023-09-27 18:28:38

有没有一种方法可以从excel中读取数据并打开office电子表格并将其保存到临时存储中,如数据集或数组?我偶然发现ExcelDataReader(http://exceldatareader.codeplex.com/),但只有当用户的计算机上安装了Excel时,它才能工作。我们的一些用户只有Open Office(而其他用户则没有)。

从.xls和.ods文件中读取数据

这里有一个使用EPPLs(我非常推荐)的简单方法,可以手动将其转换为DataTable:

DataTable tbl = new DataTable();
var pck = new OfficeOpenXml.ExcelPackage();
pck.Load(new System.IO.FileInfo(@"C:'Temp'ExcelFile.xlsx").OpenRead());
if (pck.Workbook.Worksheets.Count != 0)
{
    var sheet = pck.Workbook.Worksheets.First();
    var hasHeader = false; // adjust accordingly '
    foreach (var firstRowCell in sheet.Cells[1, 1, 1, sheet.Dimension.End.Column])
    {
        tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column));
    }
    var startRow = hasHeader ? 2 : 1;
    for (var rowNum = startRow; rowNum <= sheet.Dimension.End.Row; rowNum++)
    {
        var wsRow = sheet.Cells[rowNum, 1, rowNum, sheet.Dimension.End.Column];
        tbl.Rows.Add(wsRow.Select(cell => cell.Text).ToArray());
    }
}

最初由我自己发布在这里(VB.NET).