C# 从excel中选择所有数据,并使用oledb将数据插入新的excel文件

C# 从excel中选择所有数据,并使用oledb将数据插入新的excel文件,c#,C#,我想从excel中的工作表中选择所有数据,然后使用c代码创建新的excel文件,然后将该数据插入到创建的新excel文件中。我有下面的代码从excel中选择数据,但我知道如何编写代码创建新的excel文件并将我选择的数据插入新的excel public DataTable bindExcel(string filename, string filetype, string path) { DataTable tbl = new DataTable(); if (filena

我想从excel中的工作表中选择所有数据,然后使用c代码创建新的excel文件,然后将该数据插入到创建的新excel文件中。我有下面的代码从excel中选择数据,但我知道如何编写代码创建新的excel文件并将我选择的数据插入新的excel

   public DataTable bindExcel(string filename, string filetype, string path)
{
    DataTable tbl = new DataTable();
    if (filename != "")
    {
        string connString = "";

        switch (filetype)
        {
            case ".xls": //Excel 97-03
                connString = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
                break;
            case ".xlsx": //Excel 07
                connString = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
                break;
        }
        connString = String.Format(connString, path, "Yes");
        OleDbConnection conn = new OleDbConnection(connString);
        if (conn.State == ConnectionState.Closed)
            conn.Open();
        DataTable dtExcelSchema;
        dtExcelSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string SheetName = "";
        SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
        string query = "SELECT * From [" + "DATA$" + "]";
        OleDbCommand cmd = new OleDbCommand(query, conn);
        OleDbDataAdapter da = new OleDbDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds, "Plan");
        tbl = ds.Tables["Plan"];

        da.Dispose();
        conn.Close();
        conn.Dispose();
    }
    return tbl;
}

你已经在这两个链接中解释了所有这些:和

要创建新的excel文件,您需要使用Microsoft Office Interop并执行以下操作:

Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;

xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Cells[1, 1] = "Sheet 1 content";

xlWorkBook.SaveAs("d:\\csharp-Excel.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
要在新创建的excel中插入数据,请执行以下操作:

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();

哦抱歉,如果忘记说明,我不使用Microsoft Office Interop。你有其他方法来创建excel文件吗?我认为不使用任何外部库是不可能的…我唯一能想到的就是创建一个csv文件。我认为Excel会打开它。另一个选择是保留一个空的Excel文件作为模板,将其复制到另一个文件中,并使用oledb填充它。我想那也行