прочетете повреден excell файл с NPOI

Наскоро зададох подобен въпрос, но благодарение на хората, които коментираха този въпрос, научих че проблемът е повече с excel, отколкото с NPOI, така че изтрих този въпрос и го перифразирам тук.

Както и да е, основният ми проблем е посочен в предишния ми въпрос. Трябва да прочета изтеглен .xls файл с помощта на NPOI. Проблемът е, че моят файл, който изтеглих, най-вероятно е HTML таблица, която е импортирана в документ на Excel. Или това, или excel-документът наистина е .xlsx (MIME?), който е компресиран/разархивиран погрешно.

Когато отворя документа в excel, получавам предупреждение, че файлът може да е повреден. Натискам ок и всичко работи добре. Така че очевидно файлът се чете от excel, но не и от NPOI.

Някой знае ли какво мога да направя по въпроса? Или е загубена кауза?


person Johan Hjalmarsson    schedule 23.06.2014    source източник


Отговори (1)


Разбрах го!

Тъй като .xls файлът всъщност е само html-таблица, отворих го с бележник и видях, че е html-източник за таблица. Така че всичко, което трябваше да направя, беше да направя анализатор, който да чете от 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);
}
person Johan Hjalmarsson    schedule 23.06.2014