0

テーブル内のプレースホルダーのコンテンツをエクスポートして、優れたものにする必要があります。そのプレースホルダーを div 内に配置するだけで、データ (テーブル) を Excel にエクスポートできます。しかし、それをテーブルの td 内に配置すると、タイトルのみをエクスポートできましたが、プレースホルダーのコンテンツはエクスポートできませんでした。

<asp:Panel ID="pnlMilestone" runat="server" CssClass="milestone-wrapper">
    <div id="TableLists" runat="server" class="milestone-chart-wrapper">         
    <table>
        <tr>
            <td style="text-align: center;">
                <asp:Label ID="lblChartTitle" runat="server" Visible="False" Font-Bold="True"></asp:Label>
            </td>
        </tr>
        <tr>
            <td>
                <div runat="server" id="bartable_render">
                    <div id="bar_chart" style="height: 315px; width: 800px; margin-left: 150px;">
                    </div>
                    <div id="bar" style="height: 345px; width: 800px; margin-left: 10px;">
                    </div>
                </div>
        <asp:PlaceHolder ID="phDynamicTabular" runat="server"></asp:PlaceHolder>
            </td>
        </tr>
    </table>
     </div>
</asp:Panel>

輸出コード:

 Response.Clear();
 Response.AddHeader("content-disposition", "attachment;filename=ProjectTarget_" + CampaignID + ".xls");
 Response.Charset = "";
 Response.ContentType = "application/vnd.xls";
 StringWriter stringWrite = new StringWriter();
 HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

 TableLists.RenderControl(htmlWrite);
 Response.Write(stringWrite.ToString());
 Response.End();
4

1 に答える 1

0

このコードを試してください、

    var htmlContent = GetHtmlContent();
    var excelName="ProjectTarget_" + CampaignID;
    response.Clear();
    response.ClearHeaders();
    response.ClearContent();
    response.ContentEncoding = Encoding.GetEncoding("windows-1254");
    response.Charset = "windows-1254"; //ISO-8859-13 ISO-8859-9  windows-1254
    response.AppendHeader("Content-Disposition", String.Format("attachment; filename={0}.xls", excelName));
    response.ContentType = "application/ms-excel";
    //response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
    const string header = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<title></title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1254\" />\n<style>\n</style>\n</head>\n<body>\n";
    response.Write(header + htmlContent);
    response.End();

このページもご覧ください: 作成したExcelファイルをASP.NETのクライアントPCに保存する方法

その助けを願っています。

于 2012-10-12T05:48:04.827 に答える