急~~~~~怎么在.net中读取Excel某一列的值 ?

Jason5858 2006-11-23 09:49:56
如题!
我想做的功能如下,比如:
Excel中的Sheet1有一列 ID
1
2
5
6
……
100

现在我想读取Excel中的ID列,作为 Select * from Table where ID in (1,2,5,6,……100) 中 ID in () 里面的条件,最后把Select出来的数据再输出Excel !
(ID列是可变的,每次的数据都不同)
请问怎么做呢?能否给点例子

Regards
急急急,,在线等~~~~~~~~~
...全文
639 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
brbrm 2006-11-24
  • 打赏
  • 举报
回复
即把整个数据表读到一个DataTable中,
使用一个Excel.Application对象打开Excel表
而后:

Excel.WorkSheet sheet1 = (Excel.WorkSheet)ExcelApp1.Workbooks.Sheet[1];
int id;
DataRow row;
for(int i=1; i<=sheet1.UsedRange.Rows.Count; i++)
{
id = (int)sheet1.get_Range("A"+i, missing);
row = dataTable1.Find(id);
sheet1.get_Range("B"+i, missing).Value2 = row[1];
sheet1.get_Range("C"+i, missing).Value2 = row[2];
...

}
brbrm 2006-11-24
  • 打赏
  • 举报
回复
你是不是可以先Select * from Table,
依次遍历Excel的ID列,作为条件对得到的DataTable进行筛选,每次把筛选出的结果写到EXCEL的当前行
bianchen 2006-11-23
  • 打赏
  • 举报
回复
说说自己的意见,不知道是否可行
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\com.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
Dim conn As New OleDb.OleDbConnection(strConn)
Dim myCommand As New OleDb.OleDbDataAdapter("SELECT ID FROM [Sheet1$]", strConn)
Jason5858 2006-11-23
  • 打赏
  • 举报
回复
好的,谢谢楼上的,还有其他的吗?
zlj113 2006-11-23
  • 打赏
  • 举报
回复
给个示例你把Excel数据导入到临时表
select * into ##excel from OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="H:\a.XLS";User ID=Admin;Password=;Extended properties=Excel 5.0')...[sheet1$]
zlj113 2006-11-23
  • 打赏
  • 举报
回复
建议你先把Excel中ID列的值读入到一个临时表里 ##excel,再进行
Select * from Table where ID in (select id from ##Excel)

Jason5858 2006-11-23
  • 打赏
  • 举报
回复
大侠们,,帮帮忙吧 !自己顶一个先
liujian13 2006-11-23
  • 打赏
  • 举报
回复
引用:bianchen(未来风)
说说自己的意见,不知道是否可行
Dim strConn As String
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\com.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
Dim conn As New OleDb.OleDbConnection(strConn)
Dim myCommand As New OleDb.OleDbDataAdapter("SELECT ID FROM [Sheet1$]", strConn)
接下来
dim dataset1 as dataset
myCommand .fill(dataset1,"tb")
dim datatable1 as datatable
dtbl1= dataset1.table("tb") '只是excel 的ID字段建立的一个表
同样你建立一个所有excel数据的表,假如为dtbl2
for i as integer = 0 to dtbl1.rows.count -1
for j as integer = 0 to dtbl2.rows.count -2
if dtbl1.rows(i).item("ID") = dtlb2.rows(i).item("ID")
再建立一个listview ,例子如下,
至于listview怎么导入到数据库中就不要我说了



Dim strSEQ As String = myReader.Tables("TBL").Rows(i).Item(0).ToString.Trim
Dim strPID As String = myReader.Tables("TBL").Rows(i).Item(1).ToString.Trim
Dim strPName As String = myReader.Tables("TBL").Rows(i).Item(2).ToString.Trim
Dim strDRUG As String = myReader.Tables("TBL").Rows(i).Item(3).ToString.Trim
Dim strOPTime As String = CutYear(myReader.Tables("TBL").Rows(i).Item(4).ToString).Trim
Dim strDepart As String = myReader.Tables("TBL").Rows(i).Item(5).ToString.Trim
Dim strDocName As String = myReader.Tables("TBL").Rows(i).Item(6).ToString.Trim

Dim Item = New ListViewItem(New String() {strSEQ, strPID, strPName, strDRUG, strOPTime, strDepart, strDocName}, 0)

弄个循换
添加到Me.ParentList.Items.Add(Item)
接下把listview中的数据导入excel或者数据库当中即可
Jason5858 2006-11-23
  • 打赏
  • 举报
回复
晕,,没解决,再顶一下吧 !

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧