高手说下
怎么将excel文档上传之后将文档中的数据插入到数据库中 求源码
[解决办法]
sqlserver数据库有内置函数xp_cmdshell,可以将excel数据导入数据库。
[解决办法]
当excel上传到服务器上以后,可以把excel当成一个数据库读,然后再插入想要的数据库中
C#读取excel数据例子
OleDbConnection conn = new OleDbConnection();
try
{
string FilePaths = FilePath;
// ' F:\G2000-S041 G2000MEN GMF MASS NON-CHINA SP-2012 ORDER FORM.xls
dynamic FileWZ = FilePaths.LastIndexOf(".");
//文件的位置
dynamic File_H_Z = FilePaths.Substring(FileWZ);
//得到后缀
if (File_H_Z == ".xls")
{
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + FilePath + ";Extended Properties ='Excel 8.0;HDR=YES;IMEX=1'";
}
if (File_H_Z == ".xlsx")
{
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source = " + FilePath + ";Extended Properties ='Excel 12.0;HDR=YES;IMEX=1'";
}
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
//return conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] {null,null,null,"TABLE"});
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [Sheet1$]", conn);
DataSet myDataSet = new DataSet();
adapter.Fill(myDataSet);
if (myDataSet.Tables.Count > 0)
{
return myDataSet.Tables[0];
}
return null;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if ((conn != null))
conn.Close();
if ((conn != null))
conn.Dispose();
}
[解决办法]
和操作数据库一样的,使用OleD前缀的ado.net对象即可。
可以在查询语句中加上行列的范围限制:string select = "SELECT * FROM [Sheet1$A1:B3]";
也可以用第三方的一些组件去读取,比如NPOI等。。。