public void import_excel()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
FileInfo fileInfo = new FileInfo(openFileDialog.FileName);
string filePath = fileInfo.FullName;
string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
try
{
OleDbConnection oleDbConnection = new OleDbConnection(connExcel);
oleDbConnection.Open();
DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string tableName = dataTable.Rows[0][2].ToString().Trim();
tableName = "[" + tableName.Replace("'", "") + "]";
string query = "SELECT * FROM " + tableName;
DataSet dataSet = new DataSet();
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query, connExcel);
oleAdapter.Fill(dataSet, tableName);
DataGrid dataGrid = new DataGrid();
DataTable dataTable1 = new DataTable();
string strconn = "Data Source=192.168.2.149,1433;Network Library = DBMSSOCN;Initial Catalog = db_sqlserver;User ID=sa;Password='admin_123';";
SqlConnection sqlConnection = new SqlConnection(strconn);
sqlConnection.Open();
SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT id, djh,tdsyz, zdmj FROM gch_Class_Info", sqlConnection);
SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
sqlDA1.Fill(dataTable1);
foreach (DataRow dataRow in dataSet.Tables[tableName].Rows)
{
DataRow dataRow1 = dataTable1.NewRow();
dataRow1["id"] = dataRow["序号"];
dataRow1["djh"] = dataRow["地籍号"];
dataRow1["tdsyz"] = dataRow["土地使用者"];
dataRow1["zdmj"] = dataRow["宗地面积"];
dataTable1.Rows.Add(dataRow1);
}
Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");
sqlDA1.Update(dataTable1);
oleDbConnection.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
}
------解决思路----------------------
OpenFileDialog openFileDialog = new OpenFileDialog(); //构造打开文件对话框
openFileDialog.Filter = "Excel files(*.xls)
------解决思路----------------------
*.xls
------解决思路----------------------
txt文件
------解决思路----------------------
*.txt"; //打开文件过滤扩展名
if (openFileDialog.ShowDialog() == DialogResult.OK) //如果打开文件对话框点了OK
后边的继续努力 翻译 呵呵!
------解决思路----------------------
FileInfo fileInfo = new FileInfo(openFileDialog.FileName); //根据打开文件的文件路径,生成FileInfo对象方便才做
string filePath = fileInfo.FullName;//获取文件全名
string connExcel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";//excel的驱动。。或者叫连接字符串
------解决思路----------------------
tableName = "[" + tableName.Replace("'", "") + "]";
string query = "SELECT * FROM " + tableName;
DataSet dataSet = new DataSet();
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query, connExcel);
oleAdapter.Fill(dataSet, tableName);
这部分就是读取excel的数据,填充到dataSet中,
string strconn = "Data Source=192.168.2.149,1433;Network Library = DBMSSOCN;Initial Catalog = db_sqlserver;User ID=sa;Password='admin_123';";
SqlConnection sqlConnection = new SqlConnection(strconn);
sqlConnection.Open();
SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT id, djh,tdsyz, zdmj FROM gch_Class_Info", sqlConnection);
SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
sqlDA1.Fill(dataTable1);
连接目标数据库,将数据库的数据填充到表中dataTable1
以下是取出dataSet中的数据,插入到dataTable1中,再更新到数据库
foreach (DataRow dataRow in dataSet.Tables[tableName].Rows)
{
DataRow dataRow1 = dataTable1.NewRow();
dataRow1["id"] = dataRow["序号"];
dataRow1["djh"] = dataRow["地籍号"];
dataRow1["tdsyz"] = dataRow["土地使用者"];
dataRow1["zdmj"] = dataRow["宗地面积"];
dataTable1.Rows.Add(dataRow1);
}
Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 条记录");
sqlDA1.Update(dataTable1);
oleDbConnection.Close();
------解决思路----------------------
说白了就是使用oledb把excel表当数据库表读取
------解决思路----------------------
你实在不会,可以单步调试一下里面的数据,可能会加深你的理解~