导出HTML表格到多个Excel工作表,使用C# [英] Export Html Tables to Multiple Excel Sheet using C#

查看:173
本文介绍了导出HTML表格到多个Excel工作表,使用C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何到多个表导出为多种使用C#的Excel工作表?低于code是工作,但只有1 HTML表格。

  Response.ContentType =应用程序/ x-msexcel的;
    Response.AddHeader(内容处置,附件;文件名= ExcelFile.xls);
    Response.ContentEncoding = Encoding.UTF8;
    StringWriter的TW =新的StringWriter();
    HtmlTextWriter的HW =新的HtmlTextWriter(TW);
    tbl.RenderControl(HW);
    的Response.Write(tw.ToString());
    到Response.End();

下面是* .aspx页面中的表。我想在一个Excel的两个表与多个表。

例如:表1中的工作表1
 表2是在工作表2

 <表ID =TBLBORDER =1=服务器>
                &所述; TR>
                    < TD>产品与LT; / TD>
                    < TD>价格< / TD>
                    < TD>可用< / TD>
                    < TD> COUNT< / TD>
                < / TR>
                &所述; TR>
                    < TD>&育成LT; / TD>
                    &所述; TD→1
                    < / TD>
                    &所述; TD→2
                    < / TD>
                    &所述; TD→3
                    < / TD>
                < / TR>
                &所述; TR>
                    < TD>酱和LT; / TD>
                    &所述; TD→4
                    < / TD>
                    &所述; TD→5
                    < / TD>
                    &所述; TD→6
                    < / TD>
                < / TR>
            < /表>     <表ID =tbl2的边界=1=服务器>
                &所述; TR>
                    < TD> KD< / TD>
                    < TD> Dabhi< / TD>
                    < TD> Qnil< / TD>
                    < TD> Dabhi< / TD>
                < / TR>
                &所述; TR>
                    < TD>&育成LT; / TD>
                    &所述; TD→1
                    < / TD>
                    &所述; TD→2
                    < / TD>
                    &所述; TD→3
                    < / TD>
                < / TR>
                &所述; TR>
                    < TD>酱和LT; / TD>
                    &所述; TD→4
                    < / TD>
                    &所述; TD→5
                    < / TD>
                    &所述; TD→6
                    < / TD>
                < / TR>
            < /表>
     < ASP:按钮=服务器ID =ExportToExcelButton的OnClick =ExportToExcelButton_Click
        文本=导出到Excel/>


解决方案

在你提到的例子,你是不是创建一个Excel(或Excel工作表),而不是你尝试打开Excel格式的HTML内容。就是这个道理,即使你有两个表格,他们将在单张显示出来。

使用微软的OpenXML的SDK ,通过它你可以创建任意张数和注入数据表。即使OpenXML的SDK得到了一些小问题,当涉及到数据类型(尤其是在从Excel表读取数据)。在这种情况下,你可以去任何第三方Excel自动化供应商,如 US preadSheetGear

How to export multiple tables to multiple excel sheet using c#? Below code is working but only for 1 html table.

    Response.ContentType = "application/x-msexcel";
    Response.AddHeader("Content-Disposition", "attachment; filename=ExcelFile.xls");
    Response.ContentEncoding = Encoding.UTF8;
    StringWriter tw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(tw);
    tbl.RenderControl(hw);
    Response.Write(tw.ToString());
    Response.End();

Below are tables in *.aspx page. And i want to both tables in one excel with multiple sheet.

for Example : Table 1 is in worksheet 1 table 2 is in worksheet 2

  <table id="tbl" border="1" runat="server" >
                <tr>
                    <td>Product</td>
                    <td>Price</td>
                    <td>Available</td>
                    <td>Count</td>
                </tr>
                <tr>
                    <td>Bred</td>
                    <td>1
                    </td>
                    <td>2
                    </td>
                    <td>3
                    </td>
                </tr>
                <tr>
                    <td>Butter</td>
                    <td>4
                    </td>
                    <td>5
                    </td>
                    <td>6
                    </td>
                </tr>
            </table>

     <table id="tbl2" border="1" runat="server" >
                <tr>
                    <td>KD</td>
                    <td>Dabhi</td>
                    <td>Qnil</td>
                    <td>Dabhi</td>
                </tr>
                <tr>
                    <td>Bred</td>
                    <td>1
                    </td>
                    <td>2
                    </td>
                    <td>3
                    </td>
                </tr>
                <tr>
                    <td>Butter</td>
                    <td>4
                    </td>
                    <td>5
                    </td>
                    <td>6
                    </td>
                </tr>
            </table>


     <asp:Button runat="server" ID="ExportToExcelButton" OnClick="ExportToExcelButton_Click"
        Text="Export To Excel" />

解决方案

In the example you mentioned, you are NOT creating an Excel (or Excel WorkSheets), instead you are trying to open HTML content in Excel format. That is the reason, even if you have TWO Tables, they will show up in single sheet.

Use Microsoft's OpenXml SDK, through which you can create any number of Sheets and inject data into sheets. Even OpenXml SDK got some minor issues when it comes to Date Type (especially while reading data from Excel sheets). In such a case you can go to any third party Excel automation providers like SpreadSheetGear.

这篇关于导出HTML表格到多个Excel工作表,使用C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆