繁体   English   中英

从Excel中选择所有数据,然后使用C#oledb将数据插入到新的Excel文件中

[英]select all data from excel and insert data to new excel file using c# oledb

我想从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;
}

您已经在以下两个链接中获得了所有这些解释: 使用oledb 创建Excel文件在Excel中插入数据

要创建一个新的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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM