从数据集表一一写入Excel工作表

时间:2019-05-03 17:35:30

标签: c# excel dataset

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

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

2 个答案:

答案 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!");
                }

            }

        }