Barthinia Ответов: 2

Excel не может открыть файл, так как формат файла или расширение файла недопустимы


Привет я хочу экспортировать представление сетки в Excel 2010 и я попробовал следующий код он сохраняет Excel но когда я хочу открыть лист excel который я сохраняю он дал мне следующее сообщение
excel cannot open the file because the file format or file extension is not valid 


Что я уже пробовал:

private void ExportToExcel()
    {
        string RegionName = "'"+ DDlRegionName.SelectedItem.Text +"'";
        string Excelfilename = RegionName + DateTime.Now;
        Response.Clear();
        Response.Buffer = true;
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AppendHeader("Content-Disposition:", "attachment; filename=" + Excelfilename + ".xlsx");
        Response.Charset = "";
        Response.ContentEncoding = Encoding.Unicode;
        Response.BinaryWrite(Encoding.Unicode.GetPreamble());
        this.EnableViewState = false;
        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
        GrdComplaint.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());
        Response.End();
    }

2 Ответов

Рейтинг:
2

OriginalGriff

Начните с загрузки файла из вашего кода, содержащего небольшой объем данных.
Затем создайте лист Excel, содержащий те же данные, и сохраните его в виде файла XLSX (с помощью Excel 2010)

Затем используйте редактор для сравнения двух файлов: сгенерированный Excel будет представлять собой нечитаемые двоичные данные, убедитесь, что сгенерированный вами файл похож.

Файлы XLSX-это архивированные файлы, поэтому они нечитабельны.
Теперь измените расширение для обоих файлов на .ZIP и откройте их снова: на этот раз вы должны быть в состоянии увидеть список файлов, как это:

_rels                (a folder)
docProps             (a folder)
xl                   (a folder)
[Content_Types].xl
Опять же, они должны быть одинаковыми или, по крайней мере, очень похожими.
Продолжайте проверять, пока не обнаружите существенную разницу, и вы можете начать wori=king оттуда, что не так с вашими данными.

Извините, но мы ничего не можем сделать для вас!


Рейтинг:
14

Dave Kreskowiak

Ваш код не записывает файл Excel. Это запись HTML-таблицы в файл и отправка этого файла обратно клиенту. Excel обычно может интерпретировать таблицу HTML и анализировать ее в лист Excel, но это работает только в том случае, если вы пишете красивую простую таблицу HTML.

Если вам нужна настоящая книга Excel, вам придется использовать библиотеку для создания файла и размещения в нем данных, например OpenXML SDK, ClosedXML, EPPlus ...