问一个C#从excel导入数据到sql2005的问题
--------------------编程问答-------------------- 主从表导入直接select * From book获取excel数据
在插入到数据库就好了
另外excel要做成固定的模板,按照你的模板填入数据
没有模板的话,客户今天是这样的表,明天是那样的表式行不同的
建议做成主从表,主表一个工作表,从表一个工作表
如果客户想简化录入的话,你可以看看VBA编程,简单的写的程序,可以解决excel很多问题 --------------------编程问答-------------------- 上面的显示乱了,截个图 --------------------编程问答-------------------- 灰常简单。
/// <summary>
/// 从Excel文件中获取信息
/// </summary>
/// <param name="fileName"></param>
/// <param name="isContianCaption"></param>
/// <returns></returns>
public DataTable GetDataFormExcel(string fileName)
{
//string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties='Excel 8.0;IMEX=1;'";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = null;
DataTable dtExcel = new DataTable();
try
{
conn = new OleDbConnection(strConn);
conn.Open();
//取得表名
DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[1][2].ToString().Trim();
//第三行为表数据
string sql = " select * from [" + tableName + "] where 1=1 ";
OleDbCommand oleCommand = new OleDbCommand(sql, conn);
OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
DataSet myDataSet = new DataSet();
// 将 Excel 的[Sheet1]表内容填充到 DataSet 对象
oleAdapter.Fill(myDataSet, tableName);
DataTable dt = myDataSet.Tables[0];
dt.Columns.Add("Index");
//移除不符合条件的行
DataRow[] rows = dt.Select("[Port of Discharge ] is not null");
DataTable returnDt = dt.Clone();
for (int i = 0; i < rows.Length; i++)
{
rows[i]["Index"] = i;
returnDt.ImportRow(rows[i]);
}
return returnDt;
}
catch (Exception ex)
{
return null;
}
finally
{
if (conn != null && conn.State != ConnectionState.Closed)
conn.Close();
}
}
--------------------编程问答-------------------- 如果excel文件多了,逻辑复杂了,要求多了,可以考虑用SQL SERVER配套的SSIS,这个还是很专业、很强大的。
看你的标题跟过来的,对你目前的需求可能没啥帮助,呵呵!
补充:.NET技术 , C#