我的数据集中有多个表。我需要将所有数据表一张一张地写入excel并在最后一步中导出工作表。
如果问题已得到解决,请发布链接。因为我找不到相关的答案。
答案 0 :(得分:0)
我不确定在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());
}
}
}
}
答案 1 :(得分:-1)
这是我之前编写的代码段,其中包含一个C#Datatable对象并另存为Excel文档中的选项卡。
您必须安装NuGet for ClosedXML才能在代码段中使用这些功能。然后引用该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!");
}
}
}