Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用NPOI读取损坏的excell文件_C#_Excel_Xlsx_Corrupt_Npoi - Fatal编程技术网

C# 使用NPOI读取损坏的excell文件

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可以读取该文件

最近我问了一个问题,但多亏了对这个问题发表评论的人,我才知道问题更多的是excel而不是NPOI,所以我删除了这个问题,并在这里重新表述

无论如何,我的主要问题已经在我的前一个问题中陈述了。我需要使用NPOI读取下载的.xls文件。问题是,我下载的文件很可能是一个已导入excel文档的HTML表。或者excel文档实际上是一个.xlsx(MIME?),它被错误地压缩/解压

当我在excel中打开文档时,会收到一条警告,指出该文件可能已损坏。我按下“ok”,一切正常。显然,excel可以读取该文件,但NPOI无法读取

有人知道我能做些什么吗?还是失败了?

我想出来了

因为.xls文件实际上只是一个html表格,所以我用记事本打开它,看到它是表格的html源代码。所以我所要做的就是做一个解析器,从html文件读入数据表,然后从那里开始

这是一个开始(尚未完成解析器):

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);
}