C# 使用NPOI读取损坏的excell文件
最近我问了一个问题,但多亏了对这个问题发表评论的人,我才知道问题更多的是excel而不是NPOI,所以我删除了这个问题,并在这里重新表述 无论如何,我的主要问题已经在我的前一个问题中陈述了。我需要使用NPOI读取下载的.xls文件。问题是,我下载的文件很可能是一个已导入excel文档的HTML表。或者excel文档实际上是一个.xlsx(MIME?),它被错误地压缩/解压 当我在excel中打开文档时,会收到一条警告,指出该文件可能已损坏。我按下“ok”,一切正常。显然,excel可以读取该文件,但NPOI无法读取 有人知道我能做些什么吗?还是失败了?我想出来了 因为.xls文件实际上只是一个html表格,所以我用记事本打开它,看到它是表格的html源代码。所以我所要做的就是做一个解析器,从html文件读入数据表,然后从那里开始 这是一个开始(尚未完成解析器):C# 使用NPOI读取损坏的excell文件,c#,excel,xlsx,corrupt,npoi,C#,Excel,Xlsx,Corrupt,Npoi,最近我问了一个问题,但多亏了对这个问题发表评论的人,我才知道问题更多的是excel而不是NPOI,所以我删除了这个问题,并在这里重新表述 无论如何,我的主要问题已经在我的前一个问题中陈述了。我需要使用NPOI读取下载的.xls文件。问题是,我下载的文件很可能是一个已导入excel文档的HTML表。或者excel文档实际上是一个.xlsx(MIME?),它被错误地压缩/解压 当我在excel中打开文档时,会收到一条警告,指出该文件可能已损坏。我按下“ok”,一切正常。显然,excel可以读取该文件
private static void HTMLtoExcel(字符串文件名)//atm,读取第一个单元格值。
{
string text=File.ReadAllText(文件名);
DataTable dt=新的DataTable();
插入字符串;
int start=text.IndexOf(“”);
int stop=text.IndexOf(“”);
插入=text.Substring(开始,停止-开始);
插入=插入。移除(0,4);
控制台写入线(插入);
}
private static void HTMLtoExcel(string fileName) //atm, reads the first cell value.
{
string text = File.ReadAllText(fileName);
DataTable dt = new DataTable();
string insert;
int start = text.IndexOf("<td>");
int stop = text.IndexOf("</td>");
insert = text.Substring(start, stop - start);
insert = insert.Remove(0, 4);
Console.WriteLine(insert);
}