我最近问过一个similar问题,但感谢那些对这个问题发表评论的人,我了解到问题更多的是excel而非NPOI,所以我删除了这个问题,并在此重述。
无论如何,我的主要问题已在我之前的问题中说明。我需要使用NPOI读取下载的.xls文件。问题是我下载的文件很可能是导入到Excel文档的HTML表。或者,excel文档实际上是一个错误地压缩/解压缩的.xlsx(MIME?)。
当我在excel中打开文档时,我收到一条警告,说该文件可能已损坏。我按"确定"一切正常。显然文件可以被excel读取,但不是NPOI。
有谁知道我能做些什么呢?或者这是一个失败的原因?
答案 0 :(得分:1)
我明白了!
由于.xls文件实际上只是一个html表,我用记事本打开它,看到它是一个表的html-source。所以我所要做的就是让解析器从html文件中读取到DataTable中并从那里开始。
这是一个开始(尚未完成解析器):
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);
}