【发布时间】:2019-09-22 06:56:28
【问题描述】:
我的数据集中有多个表。我需要将所有数据表一一写入excel并在最后一步导出工作表。
如果问题已经得到解答,请发布链接。因为我找不到相关的答案。
【问题讨论】:
-
cs 绝不是为了找到确切的代码来做你想做的事。它是关于找到相关的部分并将它们组合在一起。只需逐个单元格循环遍历数据表并将它们写入Excel工作表中的相应单元格。
我的数据集中有多个表。我需要将所有数据表一一写入excel并在最后一步导出工作表。
如果问题已经得到解答,请发布链接。因为我找不到相关的答案。
【问题讨论】:
我不确定如何在 C# 中拥有多个数据表,但这里有一个如何将数据对象保存到 Excel 的简单示例。
using System;
using System.Drawing;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
System.Data.OleDb.OleDbConnection MyConnection ;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
string sql = null;
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\csharp.net-informations.xls';Extended Properties=Excel 8.0;");
MyConnection.Open();
myCommand.Connection = MyConnection;
sql = "Insert into [Sheet1$] (id,name) values('5','e')";
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MyConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show (ex.ToString());
}
}
}
}
【讨论】:
这是我之前编写的一段代码,它采用 C# 数据表对象并保存为 excel 文档中的选项卡。
您必须为 ClosedXML 安装 NuGet 才能在 sn-p 中使用这些功能。然后引用那个 dll 来使用这些函数。
using ClosedXML.Excel;
DataTable DT = MyDataTable;
XLWorkbook wb = new XLWorkbook();
IXLWorksheet UseLevelDataSheet= wb.Worksheets.Add(DT, "BootStrap Uselevel
Data");
IXLWorksheet MLE_EstimatesSheet= wb.Worksheets.Add(DT_estimates, "MLE estimates & CB_BCA");
if (SavePath==null)
{
string DocFolder =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string FileName = CreateFileName(DocFolder);
wb.SaveAs(FileName);
SavePath = FileName;
}
else
{
try
{
wb.SaveAs(SavePath);
}
catch (Exception err)
{
if (err.HResult== -2147024864)
{
MessageBox.Show("Unable save, file is locked!");
}
}
}
【讨论】: