次のコードは現在動作していますが、Excelを開いた後に破損メッセージを表示せずにXLSX形式で表示します。データ形式のデータを(XLSX)形式のExcelにエクスポート
protected void BTNExportExcel_Click(object sender, EventArgs e)
{
DataTable dtexp= ExportTrends(); //const
try
{
Response.Clear();
Response.ClearContent();
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment; filename=Export.xls");
TextWriter tw = new StringWriter();
HtmlTextWriter h = new HtmlTextWriter(tw);
string[] images = TXTImages.Text.Split(new string[]{"<img"},StringSplitOptions.None);
if (images.Length > 0)
{
Response.Write(images[0].ToString());
for (int i = 1; i < images.Length; i++)
{
System.Web.UI.WebControls.Image img = new System.Web.UI.WebControls.Image();
string secondpart = images[i].Substring(images[i].IndexOf(',')+1);
img.ImageUrl = LoadImage(images[i].Substring(images[i].IndexOf(',') + 1, secondpart.LastIndexOf('\'')));
img.RenderControl(new HtmlTextWriter(Response.Output));
Response.Write("<BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/>");
}
}
Response.Write("<BR/>");
////// Create a dynamic control, populate and render it
GridView excel = new GridView();
excel.DataSource = dtexp;
excel.DataBind();
excel.RenderControl(new HtmlTextWriter(Response.Output));
Response.Flush();
Response.End();
}
catch (Exception ex)
{
Response.Write(string.Empty);
Response.Flush();
Response.End();
}
}
次に、実際のXLSXファイルを生成できるライブラリを見つける必要があります。 Googling "C#XLSX library"を試してみましたか? – mason
はい、試しましたが、外部ライブラリを使用しています。私は私のプロジェクトに外部ライブラリを追加したくありません。 – VMS
それはあなたのために厳しいだろう。ご覧のとおり、XLSXは実際にあなた自身のコードで生成する単純なフォーマットではありません。それがライブラリが存在する理由です。だから、あなたは車輪を再開発する必要はありません。外部ライブラリを使用することに対して何がありますか? – mason