有没有办法从excel和开放式办公电子表格中读取数据并将它们保存到临时存储中,如DataSet或数组?我遇到了ExcelDataReader(http://exceldatareader.codeplex.com/),但它只适用于用户在其计算机上安装了Excel的情况。我们的一些用户只有Open Office(其他人都没有)。
答案 0 :(得分:1)
这是一个使用EPPlus(我可以热烈推荐)将手动转换为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());
}
}
最初由我自己发布here(VB.NET)。