由于我的asp.net Web应用程序上的文件上传,我有一个xls文件位于byte []中。是否有一个库可以读入并处理xls文件作为byte []?我不想将文件保存到磁盘。
我需要做的就是能够读取单元格内容(如果我有选择,我宁愿接受csv文件)。
我发现SpreadsheetGear声称这样做,但我宁愿不花1000美元购买超出我需要的软件。
请注意,我指的是XLS文件,而不是XLSX文件,但我很感激两者的建议。
答案 0 :(得分:1)
您可以结帐excellibrary。如果您正在处理OpenXML(.xlsx
),可以查看Open XML SDK。
答案 1 :(得分:1)
EPPlus也是一个用于处理Excel文件的可靠库。它有一些示例将显示如何与MemoryStream中的文件进行交互。
答案 2 :(得分:0)
NOPI有一个非常好的图书馆,它可以在EPPlus离开的地方找到它。 http://npoi.codeplex.com/
答案 3 :(得分:0)
您对XLS的引用建议使用较旧的Excel 97格式,在这种情况下,您可以使用作为Tarantino项目的一部分提供的ExcelWorkbook / ExcelWorksheet阅读器代码Tarantino Bitbucket Repository
您可以将XLS作为流传递到内存中,辅助方法将返回带有工作簿数据的DataSet和表示Sheets的Tables。您不需要整个Tarantino项目代码,只需抓住:
并将这些文件添加到您的解决方案中。
使用界面很简单:
[HttpPost]
public ActionResult Uploadfile(HttpPostedFileBase file)
{
var reader = new ExcelWorkbookReader();
var data = reader.GetWorkbookData(file.InputStream);
// Do something with the data here
return RedirectToAction("List");
}
答案 4 :(得分:-1)
您可以使用ADO.NET和OLEDB驱动程序读取没有Excel库的.xls内容。但工作表必须采用“表格”格式。如果这是真的,它的工作正常。
连接字符串应该是这样的:
Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ MyExcel.xls; Extended Properties =“Excel 8.0; HDR = Yes; IMEX = 1”;
问候。