C# 从excel中选择所有数据,并使用oledb将数据插入新的excel文件
我想从excel中的工作表中选择所有数据,然后使用c代码创建新的excel文件,然后将该数据插入到创建的新excel文件中。我有下面的代码从excel中选择数据,但我知道如何编写代码创建新的excel文件并将我选择的数据插入新的excelC# 从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
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填充它。我想那也行