私はEPPlusでデータテーブルをエクスポートするにはデータテーブルがint型のプロパティを持っているので、同じ形式がExcelファイルにあります。 誰もDataTableをExcelにエクスポートする方法を知っていますか?EPPlusでエクスポートするDataTableをエクスポートする
答えて
using (ExcelPackage pck = new ExcelPackage(newFile))
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Accounts");
ws.Cells["A1"].LoadFromDataTable(dataTable, true);
pck.Save();
}
これはあなたのためのトリックを行う必要があります。フィールドがintとして定義されている場合EPPlusは、列を数値または浮動小数点数に正しくキャストします。あなたの代わりにResponse
のブラウザの使用HttpContext.Current.Response
にexcelsheetをダウンロードするためのブラウザの応答
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
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);
}
とそうでない場合は、あなたが取得するResponse is not available in this context.
はerror.Hereは私のコードです
public void ExporttoExcel(DataTable table, string filename)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridData.xlsx");
using (ExcelPackage pack = new ExcelPackage())
{
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(filename);
ws.Cells["A1"].LoadFromDataTable(table, true);
var ms = new System.IO.MemoryStream();
pack.SaveAs(ms);
ms.WriteTo(HttpContext.Current.Response.OutputStream);
}
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
}
スニペットありがとう! "Logs.xlsx"をurlencodeする必要はありません:) –
にダウンロードしたい場合は
'System.Web.HttpContextBase'を取得している人には、 'Current'の定義が含まれていません:HttpContext.Currentへの参照を取得するには、置き換えが必要です HttpContext.Current System.Web.HttpContext.Current http://stackoverflow.com/questions/19431820/system-web-httpcontextbase-does-not-contain-a-definition-for-current-mvc-4-wi –
方法エクスポート中にdatatableのヘッダをフォーマットする –
はい。これは正常に動作しています。しかし、データテーブルにlakhsの行が含まれている場合。これは動作していません。 – thevan
その特定のケースの質問を開いてください。 – wegginho