![](/img/trans.png)
[英]“Cannot find central directory” error appears when extracting 7z file using SharpZipLib
[英]Cannot find central directory error
我正在尝试从 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 文件移动到不同的位置,但我仍然面临同样的错误。
一个例外说明:
找不到中央目录
表示以下情况之一可能为真:
.xlsx
文件(您确定它不是.xls
文件吗?)从您的代码看来,您正在使用ExcelDataReader并尝试打开 XML 格式 ( xlsx
) 文件。 您确定该文件实际上不是有人错误命名为.xlsx
的.xls
文件吗? 您可以使用以下方法进行检查:
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
代替:
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
检查您使用的是 .xlsx 或 .xls 文件的天气。
如果您使用 .xlsx 则使用
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
如果您使用 .xls 然后使用
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
希望能帮助到你。 它对我有用。
如果 Excel 文件受密码保护,您也会收到此错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.