Вставка данных в таблицу Excel из DataTable

Я извлекаю данные из базы данных вDataTable и отображать его, привязав его кRepeater контроль. Теперь мне нужно скопировать те же данные в таблицу Excel. Как я могу использовать то же самоеDataTable заполнить электронную таблицу. Пожалуйста, предложите.

 Bazooka11 мая 2012 г., 10:09
@ Vinay Я хочу, чтобы лист создавался динамически.
 Vinay11 мая 2012 г., 10:07
@Parminder в этой таблице Excel является существующей или вы создаете новую. Если вы создаете новый лист, вы также можете использоватьNPOI
 Bazooka11 мая 2012 г., 10:07
Спасибо за ссылку.
 joshua11 мая 2012 г., 10:03
Двойной вопрос ....:stackoverflow.com/questions/2800563/…

Ответы на вопрос(2)

Решение Вопроса

Я бы предложил создать настоящий Excel-файл вместо HTML-таблицы (что делают многие). Поэтому я могу горячо рекомендоватьEPPlus(Лицензия LGPL).

Тогда это просто. Предполагая, что у вас есть кнопкаBtnExportExcel:

protected void BtnExcelExport_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    try {
        var pck = new OfficeOpenXml.ExcelPackage();
        var ws = pck.Workbook.Worksheets.Add("Name of the Worksheet");
        // get your DataTable
        var tbl = GetDataTable();
        ws.Cells["A1"].LoadFromDataTable(tbl, true, OfficeOpenXml.Table.TableStyles.Medium6);
        foreach (DataColumn col in tbl.Columns) {
            if (col.DataType == typeof(System.DateTime)) {
                var colNumber = col.Ordinal + 1;
                var range = ws.Cells[1, colNumber, tbl.Rows.Count, colNumber];
                // apply the correct date format, here for germany
                range.Style.Numberformat.Format = "dd.MM.yyyy";
            }
        }
        var dataRange = ws.Cells[ws.Dimension.Address.ToString()];
        dataRange.AutoFitColumns();

        Response.Clear();
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;  filename=NameOfExcelFile.xlsx");
        Response.BinaryWrite(pck.GetAsByteArray());
    } catch (Exception ex) {
        // log exception
        throw;
    } 
    Response.End();
}
 Bazooka11 мая 2012 г., 15:21
работает как шарм. Ура !!!

Вы можете создать файл .csv. Это быстро и легко, и позволяет открыть его в Excel.

Этот пост относится к вашему:

Конвертировать DataTable в поток CSV

Ваш ответ на вопрос