C # - экспортировать dataTable в Excel, используя HttpContext - форматировать значение ячейки - PullRequest
0 голосов
/ 14 декабря 2018

Я экспортировал файл Excel из таблицы данных.Я использовал HttpContext.Мне нужно иметь:

enter image description here

Но мой результат:

enter image description here

это мой код:

    protected void Export_Click(object sender, EventArgs e) {
        DataTable dt = GParam.GetreferentielContacts();
        HttpContext context = HttpContext.Current;
        context.Response.Clear();
        foreach (DataColumn column in dt.Columns){
            context.Response.Write(column.ColumnName + "\t");
        }
        context.Response.Write(Environment.NewLine);
        foreach (DataRow row in dt.Rows){
            for (int i = 0; i < dt.Columns.Count; i++){
                context.Response.Write(row[i].ToString() + "\t");
            }
            context.Response.Write(Environment.NewLine);
        }
        context.Response.ContentType = "application/application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=test_export.xlsx");
        context.Response.End();
    }

Каковы параметры для форматирования этого первого столбца?Спасибо

1 Ответ

0 голосов
/ 14 декабря 2018

Разрешено Я использовал библиотеку EpPlus Код ниже

    protected void Export_Click(object sender, EventArgs e) {
        DataTable dt = GParam.GetreferentielContacts();
        HttpContext context = HttpContext.Current;
        context.Response.Clear();
        context.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        context.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("Logs.xlsx", System.Text.Encoding.UTF8));
        using (ExcelPackage pck = new ExcelPackage()) {
            ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Logs");
            ws.Cells["A1"].LoadFromDataTable(dt, true);
            var ms = new System.IO.MemoryStream();
            pck.SaveAs(ms);
            ms.WriteTo(Response.OutputStream);
        }
        context.Response.End();
    }
...