首页 > 解决方案 > 通过 Microsoft.Office.Interop.Excel(或任何其他建议)将在 asp.net html 表中的文本框中输入的文本导出到 excel

问题描述

网站上有一个表格,用户在表格的单元格中输入数据。我编辑了准备好的代码,将每个用户输入的数据拉到不同的页面,如下所示。但是这里的问题是:有很多单元格,我必须在代码中将它们一一匹配。我认为这应该是一种更简单的方法。我正在等待你对我的建议。(不会使用Sql) 谢谢。

代码:

       <td class="auto-style6">%<asp:TextBox ID="txtC7" runat="server" Width="28px"></asp:TextBox>
        </td>
        <td class="auto-style7">%<asp:TextBox ID="txtD7" runat="server" Width="28px"></asp:TextBox></td>
    </tr>
    <tr>
        <td class="auto-style5">(%)</td>
        <td class="auto-style6">%<asp:TextBox ID="txtC8" runat="server" Width="28px"></asp:TextBox></td>
        <td class="auto-style7">%<asp:TextBox ID="txtD8" runat="server" Width="28px"></asp:TextBox></td>
    </tr>

后面的代码:

    private static Microsoft.Office.Interop.Excel.Workbook mWorkBook;
    private static Microsoft.Office.Interop.Excel.Sheets mWorkSheets;
    private static Microsoft.Office.Interop.Excel.Application oXL;
    object mv= System.Reflection.Missing.Value;

    protected void Button1_Click(object sender, EventArgs e)
    {
        oXL = new Microsoft.Office.Interop.Excel.Application();
        oXL.Visible = true;
        oXL.DisplayAlerts = false;

        string path = "D:\\output.xls";
        if (!File.Exists(path))
        {
            mWorkBook = oXL.Workbooks.Add();
        }
        else
        {
            mWorkBook = oXL.Workbooks.Open(path, 0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true,
                false, 0, true, false, false);
        }
        mWorkSheets = mWorkBook.Worksheets;

        Microsoft.Office.Interop.Excel.Worksheet mWSheet = (Worksheet)mWorkBook.Worksheets.Add(mv, mv, mv, mv);
        mWSheet.Name = DateTime.UtcNow.ToString().Replace(":", "-"); //Replace(":", String.Empty);
        mWSheet.Range["B8"].Value = "(%)";
        mWSheet.Range["C7"].Value = "%" + txtC7.Text;
        mWSheet.Range["C8"].Value = "%" + txtC8.Text;
        mWSheet.Range["D7"].Value = "%" + txtD7.Text;
        mWSheet.Range["D8"].Value = "%" + txtD8.Text;

        mWorkBook.SaveAs(path, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,
        mv, mv, mv, mv, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,
        mv, mv, mv,
        mv, mv);

        mWorkBook.Close(mv, mv, mv);
        mWSheet = null;

        mWorkBook = null;

        oXL.Quit();
        GC.WaitForPendingFinalizers();
        GC.Collect();
        GC.WaitForPendingFinalizers();
        GC.Collect();
    }

标签: c#asp.netexcelinterop

解决方案


推荐阅读