Member 12183079 Ответов: 1

Как дать имя заголовка в excel с помощью ASP.NET с#


DataTable dt = new DataTable();
                dt = _dataSet.Tables[0];
                //Create a dummy GridView

                GridView GridView1 = new GridView();
                GridView1.AllowPaging = false;
                GridView1.DataSource = dt;
                GridView1.DataBind();

                Response.Clear();
                Response.Buffer = true;
                Response.AddHeader("content-disposition",
                 "attachment;filename=SummaryCollection.xls");

                Response.Charset = "";
                Response.ContentType = "application/vnd.ms-excel";
                StringWriter sw = new StringWriter();

                HtmlTextWriter hw = new HtmlTextWriter(sw);
                for (int i = 0; i < GridView1.Rows.Count; i++)
                {
                    GridView1.Rows[i].Attributes.Add("class", "textmode");
                }
                GridView1.RenderControl(hw);

                //style to format numbers to string
                string style = @" .textmode { mso-number-format:\@; } ";
                Response.Write(style);
                Response.Output.Write(sw.ToString());
                Response.Flush();
                Response.End();


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

выше я пишу код, который экспортирует данные из набора данных в excel, который я хочу знать

как я даю название заголовка и привязываю имя shcool в заголовке, а также один столбец помещаю его поверх листа после названия школы

Пожалуйста, дайте мне код

F-ES Sitecore

Вы ничего не экспортируете в excel, вы отправляете html-таблицу в браузер и просите браузер использовать Excel для интерпретации этой таблицы, поэтому то, что вы можете сделать, довольно ограничено тем, как excel интерпретирует html-таблицы. Если вы хотите больше контролировать форматирование файла excel, вам, вероятно, придется создать настоящий файл excel, используя что-то вроде Open XML SDK, или есть такие продукты, как EPPlus и т. д.

1 Ответов

Рейтинг:
1

Richard Deeming

Как сказал F-ES Sitecore, используйте такой инструмент, как EPPlus[^] чтобы создать правильный файл Excel:

DataTable dt = _dataSet.Tables[0];

using (ExcelPackage package = new ExcelPackage())
{
    var sheet = package.Workbook.Worksheets.Add("Your Sheet Name");
    sheet.Cells["A1"].LoadFromDataTable(dt, PrintHeaders: true, TableStyle: TableStyles.Medium9);
    
    Response.Clear();
    Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    Response.AddHeader("content-disposition", "attachment;filename=SummaryCollection.xlsx");
    package.SaveAs(Response.OutputStream);
    
    Response.Flush();
    Response.End();
}


Member 12183079

становится исключением в этом ряду
ожидаемый;

лист.Ячейки["A1"].LoadFromDataTable(dt, печатающие головки: true, TableStyle: TableStyles.Медиум9);

Richard Deeming

А исключение есть?