我正在尝试从excel文件中读取数据.
FileStream stream = File.Open (@"C:\Temp\F1\SMRPAC974-00024COMINVDETEXTRACT.xlsx", FileMode.Open, FileAccess.Read); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); excelReader.Close(); string csvData = ""; int row_no = 0; while (row_no < result.Tables[0].Rows.Count) { for (int i = 0; i < result.Tables[0].Columns.Count; i++) { csvData += result.Tables[0].Rows[row_no][i].ToString() + ";"; } row_no++; csvData += "\n"; }
我目前正在处理的问题是"无法找到中心目录"的错误.我不知道这意味着我甚至尝试将excel文件移动到不同的位置,但我仍然面临同样的错误.
一个例外说明:
找不到中心目录
表示以下之一可能是真的:
该文件已损坏
该文件实际上不是.xslx
文件(您确定它不是.xls
文件吗?)
您用来读取文件的库有一个错误
从您的代码看起来您正在使用ExcelDataReader并尝试打开XML format(xlsx
)文件.您确定该文件实际上不是.xls
某人错误命名的文件.xlsx
吗?您可以使用以下方法检查:
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
代替:
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);