Member 13681466 Ответов: 2

Как экспортировать данные excel без предупреждающего сообщения в Microsoft in excel sheet .


Я экспортирую данные в excel sheet после того, как открою excel sheet, поэтому спросите Microsoft error, что "формат файла и расширение filename.xls не совпадают. Файл может быть поврежден или небезопасен.если вы не доверяете его источнику ,не открывайте его. Ты все равно хочешь его открыть???
я хочу urgnt щелочной раствор

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

string attachment = "attachment; filename=" + Session["name"].ToString().Replace(" ", "") + "-" + Session["name1"].ToString() + "-" + Session["name2"].ToString() + ".xls";

                System.IO.StringWriter tw = new System.IO.StringWriter();
                System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
                DataGrid dgGrid = new DataGrid();
                dgGrid.DataSource = dt;
                dgGrid.DataBind();

                ////Get the HTML for the control.
                dgGrid.RenderControl(hw);
                ////Write the HTML back to the browser.
                ////Response.ContentType = application/vnd.ms-excel;
                //Response.ContentType = "application/vnd.ms-excel";
                //Response.AppendHeader("Content-Disposition", attachment);
                //this.EnableViewState = false;
                //Response.Write(tw.ToString());
                //Response.End();

2 Ответов

Рейтинг:
1

Richard MacCutchan

Вы не можете создавать файлы Excel с помощью простых потоковых писателей. Вам нужно использовать OLEDb или Microsoft.Офис.Взаимодействие.Пространство имен Excel ()[^].


Member 13681466

thxs дайте мне правильное предложение

БТ у меня в этот тир

если у вас есть возможность, чем отправить мне код, и вы можете написать код в этом методе

и .net core

Richard MacCutchan

Извините, этот сайт здесь не для того, чтобы делать вашу работу за вас.

Рейтинг:
0

Richard Deeming

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

Вместо этого вам нужно создать настоящий файл Excel. Однако, поскольку это ASP.NET приложение, вы не можете использовать Interop:

В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.


Существуют различные способы создания электронных таблиц Excel на сервере без использования Office interop. Например:


Member 13681466

thxs дайте мне правильное предложение

БТ у меня в этот тир

если вы можете, то пришлите мне код, и вы можете написать код в этом методе.

и .net core

Richard Deeming

EPPlus поддерживает .NET Core - требование, которое вы не упомянули в своем вопросе.

И никто здесь не собирается писать код для вас. Вам нужно будет посмотреть образцы, представленные на сайте EPPlus, и адаптировать их к вашим требованиям.