Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 逐个将数据集表写入excel工作表_C#_Excel_Dataset - Fatal编程技术网

C# 逐个将数据集表写入excel工作表

C# 逐个将数据集表写入excel工作表,c#,excel,dataset,C#,Excel,Dataset,我的数据集中有多个表。我需要将所有的数据表一个接一个地写入excel,并在最后一步导出该表 如果问题已经解决,请发布链接。因为我找不到相关的答案。这是我以前写的一段代码,它接受了一个C#Datatable对象,并保存为excel文档中的一个选项卡 您必须安装一个NuGet for ClosedXML,才能在代码段中使用这些函数。然后引用该dll以使用这些函数 using ClosedXML.Excel; DataTable DT = MyDataTable; XLWorkbook wb

我的数据集中有多个表。我需要将所有的数据表一个接一个地写入excel,并在最后一步导出该表


如果问题已经解决,请发布链接。因为我找不到相关的答案。

这是我以前写的一段代码,它接受了一个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!");
                }

            }

        }

我不确定如何在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());
            }
        }
   }
}

cs从来都不是为了找到你想要的代码。关键在于找到相关的零件并将其锻造在一起。只需逐个单元格循环遍历数据表,并将它们写入Excel工作表中相应的单元格中。我投了反对票,因为错误处理在我看来完全令人敬畏。