データベースからデータを抽出DataTable
し、コントロールにバインドして表示していRepeater
ます。次に、同じデータを Excel スプレッドシートにコピーする必要があります。DataTable
同じものをスプレッドシートに入力するにはどうすればよいですか。提案してください。
質問する
5041 次
2 に答える
6
HTMLテーブルの代わりに実際のExcelファイルを作成することをお勧めします(多くの人がしていること)。そのため、私は暖かくお勧めします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();
}
于 2012-05-11T08:07:52.123 に答える
0
于 2012-05-11T08:07:19.007 に答える