c# - 通过 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();
}
解决方案
推荐阅读
- docker - 在 docker 容器内时,Conda 无法构建
- e-commerce - 是否可以对页面进行编程以实时反映我的另一个页面中产品的可用性?
- sql-server - Visual Studio、ASP.NET MVC、SQL Server - 数据库架构
- nestjs - Nestjs如何扩展partialtype(createDto)使createDto中的dtos的嵌套属性也是可选的
- javascript - 我有 JS 列表功能,在使用内联脚本时有效,但在 HTML 和 JS 位于单独的文件中时无效
- torch - 在 luarocks 中安装 cutorch 时无法构建“cutorch”
- python - 用于随机数生成的自定义 numpy(或 scipy?)概率分布
- php - ajax 代码不适用于模态表单提交 - laravel8
- firefox - Web Audio Api : navigator.mediaDevices.getUserMedia ---> Error:NotReadableError: Concurrent mic process limit
- node.js - 为什么使用完整路径访问命令与仅通过命令名称不同?