• 主页
  • VBS
  • .NET技术
  • VBA
  • VB网络编程
  • VB多媒体
  • VB数据库
  • VB控件
  • VB COM/DCOM
  • VB基础类
  • VB API

怎么样用VB.NET读写EXCEL中的数据?跪求!

godmax526 2004-12-29 12:53:57
我希望用VB.net把EXCEL里面的一组数据,读到一个数组里。请哪位好心的高手帮忙!!!
...全文
348 点赞 收藏 7
写回复
7 条回复
leedage 2004年12月30日
Dim excelapp As New Excel.Application
Dim excelbook As Excel.Workbook
Dim excelsheet As Excel.Worksheet
If OpenFileDialog1.ShowDialog = DialogResult.Cancel Then
Exit Sub
End If
excelbook = excelapp.Workbooks.Open(OpenFileDialog1.FileName)
excelsheet = excelbook.Worksheets.Item(1)

'MsgBox(excelsheet.UsedRange.Rows.Count)
'MsgBox(excelsheet.UsedRange.Columns.Count)
Try

MsgBox(CType(excelsheet.Cells.Item(1, 1), Excel.Range).Value)
Catch ex As Exception
MsgBox(ex.Message)
End Try
回复 点赞
leedage 2004年12月30日
Dim conn As New Data.OleDb.OleDbConnection
Dim comm As New Data.OleDb.OleDbCommand
Dim adap As New Data.OleDb.OleDbDataAdapter
Dim DataTableReturn As New System.Data.DataTable("test")
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\111.xls;Extended Properties=excel 8.0;Persist Security Info=False"
comm.Connection = conn
comm.CommandText = "select * from [Sheet1$]"
adap.SelectCommand = comm
adap.Fill(DataTableReturn)
回复 点赞
haoztao 2004年12月29日
http://dotnet.aspx.cc/ShowDetail.aspx?id=C673E2CD-3F1E-4919-8CE0-D69B894A0599
回复 点赞
孟子E章 2004年12月29日
http://dotnet.aspx.cc/ShowDetail.aspx?id=C673E2CD-3F1E-4919-8CE0-D69B894A0599
回复 点赞
exing 2004年12月29日
在csdn里搜索一下吧,贴子很多
回复 点赞
sunmoonfly 2004年12月29日
http://community.csdn.net/Expert/topic/3534/3534654.xml?temp=.9804804
回复 点赞
加减算法 2004年12月29日
我也插一脚(不是我写的,以前从网上找到的)

1.引用 COM组件 Excel.dll

2.实现如下

public void ExportExcel(){
DataSet ds=this.DataSet;//取得dataGrid绑定的DataSet
if(ds==null) return;

string saveFileName="";
bool fileSaved=false;
SaveFileDialog saveDialog=new SaveFileDialog();
saveDialog.DefaultExt ="xls";
saveDialog.Filter="Excel文件|*.xls";
saveDialog.FileName ="Sheet1";
saveDialog.ShowDialog();
saveFileName=saveDialog.FileName;
if(saveFileName.IndexOf(":")<0) return; //被点了取消

Excel.Application xlApp=new Excel.Application();

if(xlApp==null){
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
return;
}

Excel.Workbooks workbooks=xlApp.Workbooks;
Excel.Workbook workbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
Excel.Worksheet worksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
Excel.Range range;

string oldCaption=this.CaptionText;
long totalCount=ds.Tables[0].Rows.Count;
long rowRead=0;
float percent=0;

worksheet.Cells[1,1]=this.CaptionText;
//写入字段
for(int i=0;i<ds.Tables[0].Columns.Count;i++){
worksheet.Cells[2,i+1]=ds.Tables[0].Columns[i].ColumnName;
range=(Excel.Range)worksheet.Cells[2,i+1];
range.Interior.ColorIndex = 15;
range.Font.Bold = true;

}
//写入数值
this.CaptionVisible = true;
for(int r=0;r<ds.Tables[0].Rows.Count;r++){
for(int i=0;i<ds.Tables[0].Columns.Count;i++){
worksheet.Cells[r+3,i+1]=ds.Tables[0].Rows[r][i];
}
rowRead++;
percent=((float)(100*rowRead))/totalCount;
this.CaptionText = "正在导出数据["+ percent.ToString("0.00") +"%]...";
Application.DoEvents();
}
this.CaptionVisible = false;
this.CaptionText = oldCaption;

range=worksheet.get_Range(worksheet.Cells[2,1],worksheet.Cells[ds.Tables[0].Rows.Count+2,ds.Tables[0].Columns.Count]);
range.BorderAround(Excel.XlLineStyle.xlContinuous,Excel.XlBorderWeight.xlThin,Excel.XlColorIndex.xlColorIndexAutomatic,null);

range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;
range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle =Excel.XlLineStyle.xlContinuous;
range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight =Excel.XlBorderWeight.xlThin;

if(ds.Tables[0].Columns.Count>1){
range.Borders[Excel.XlBordersIndex.xlInsideVertical].ColorIndex =Excel.XlColorIndex.xlColorIndexAutomatic;
range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous;
range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = Excel.XlBorderWeight.xlThin;
}

if(saveFileName!=""){
try{
workbook.Saved =true;
workbook.SaveCopyAs(saveFileName);
fileSaved=true;
}catch(Exception ex){
fileSaved=false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n"+ex.Message);
}
}else{
fileSaved=false;
}
xlApp.Quit();
GC.Collect();//强行销毁
if(fileSaved && File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName);

}


回复 点赞
发动态
发帖子
VB
创建于2007-09-28

1.1w+

社区成员

11.0w+

社区内容

VB技术相关讨论,主要为经典vb,即VB6.0
社区公告
暂无公告