本人需要读取多个Excel文档,每个Excel文件只有一个Sheet页,将每个文件的内容分别导入SQL Server数据库的不同表中。
是否可以一行一行的读取Excel文件里面的内容,然后在一个字段一个字段的访问,拼成INSERT语句,使用循环的方式遍历所有的行,每遍历一行就执行一遍的INSERT语句,向数据库中写数据呢?
是否可以一行一行的读取Excel文件里面的内容,然后在一个字段一个字段的访问,拼成INSERT语句,使用循环的方式遍历所有的行,每遍历一行就执行一遍的INSERT语句,向数据库中写数据呢?
解决方案 »
- 再法个贴
- 怎样屏蔽get提交,只允许post提交
- 求助:点击button的时候报错:回发或回调参数无效。
- gridview中如何给FooterTemplate中的DropDownList控件赋值?
- 论坛回复功能如何实现
- 一个奇怪的问题,哪位帮帮我啊..很急啊!
- 能否在dreamweaver中做asp.net页面,请大侠赐教!
- 急!请问怎样得到动态添加的TextBox的Text值(c#)
- 页面中有两个按钮,如何实现点击其中一个,触发另外一个按钮的事件?
- 同一个web系统部署在服务器上面,用32位系统、64位系统电脑访问出现的问题
- 问一个关于htmlinputfile控件的问题
- 全局变量怎么使用的问题~~?
首先添加引用 把microsoft.execl添加到工程中
然后
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
xlApp = CreateObject("Excel.Application")
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
xlBook = xlApp.Workbooks.Open(FileName) 'FileName为文件名xlSheet = xlBook.Worksheets(1) '得到Sheet1页
'读出数据
s1 = xlSheet.Cells(1, 1).Value '第一行,第一列
/// 将指定Excel文件中的数据转换成DataTable对象,供应用程序进一步处理
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static System.Data.DataTable Import(string filePath,string sheetName)
{
System.Data.DataTable rs = new System.Data.DataTable();
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source=" + filePath + ";" +
"Extended Properties=\"Excel 8.0;\"");
try//如果数据连接可以打开则尝试读入数据
{
OleDbCommand myOleDbCommand = new OleDbCommand("SELECT * FROM ["+sheetName+"$]",conn);
OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand);
myData.Fill(rs);
conn.Close();
}
return rs;
}
/// 将指定Excel文件中的数据转换成DataTable对象,供应用程序进一步处理
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static System.Data.DataTable Import(string filePath,string sheetName)
{
System.Data.DataTable rs = new System.Data.DataTable();
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"+
"Data Source=" + filePath + ";" +
"Extended Properties=\"Excel 8.0;\"");
try
{
OleDbCommand myOleDbCommand = new OleDbCommand("SELECT * FROM ["+sheetName+"$]",conn);
OleDbDataAdapter myData = new OleDbDataAdapter(myOleDbCommand);
myData.Fill(rs);
}
catch{}
finally
{
conn.Close();
}
return rs;
}
不是 首先添加引用 把microsoft.execl添加到工程中
添加引用,选择com,添加microsoft excel 9.0 object library
Dim 行数 As Integer = rs.Rows.Count()如果用我的,就要自己判断了
Dim inserbyexcel As String
inserbyexcel = "insert into " & tbname & "(EntId,FacId,PartNum,Revision,Layer,SerialNum," _
& " txtName,HOleL,Hole,HoleLeng,HoleUpp,HoleLow,HoleN,Radix,Notes,PTH,LDHole,LianKong," _
& " TsoDow,TwoHole,SmaHole) select * FROM OPENROWSET(" _
& "'Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=c:\acme\temp\" & fileName & "'," _
& "'select * from [" & exceltb & "$]')"
insert into 表名(要導入的字段1,2,3) select (要導入的字段1,2,3) from openrowset("Microsoft.Jet.OLEDB.4.0","excel 8.0;Database=excel路徑","select * from [excel1&])