vb.net怎么访问excel表格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net怎么访问excel表格相关的知识,希望对你有一定的参考价值。

我的是2007版本,其它类似
1.在工程中引用Microsoft Excel 12.0 Object Library

2、在通用对象的声明过程中定义EXCEL对象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet

3、在程序中操作VB.NET EXCEL常用命令:

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值
xlSheet.PrintOut '打印工作表
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏 xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏

还有很多,这个要自己慢慢摸索
参考技术A

用spire.xls.dll比较简单,实例化一个Workbook对象,加载一个文档,然后就可以直接对文档的内容进行操作,或者将工作表的数据导出为DataTable.


    '创建Workbook对象并加载Excel文档

    Dim workbook As New Workbook()

    workbook.LoadFromFile("F:\\ExportData.xlsx", ExcelVersion.Version2013)


    '获取第一张sheet

    Dim sheet As Worksheet = workbook.Worksheets(0)


    '设置range范围

    Dim range As CellRange = sheet.Range(sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn)


    '输出数据, 同时输出列名以及公式值

    Dim dt As DataTable = sheet.ExportDataTable(range, True, True)

C# winform中以excel的方式编辑表格

我想要建一个winform 上面有一个和excel类似的表格编辑控件
这个表格编辑控件的功能要求有像excel那样选中一行往下拖动时可以自动填充下面的行,同时数值字段能够自动增加的功能
编辑完成后把数据保存到数据库
请问微软有没有直接提供excel控件?或者还有什么第三方控件可以完成这样的功能

我的开发环境是vs2010 语言是c#

  由于目前,C#和VB.net都不支持OLE技术(参见微软支持中心Info:304562),,所以只有使用WebBrowser控件来完成此功能。(以下方法参见微软支持中心Howto:304662)
  1、右击工具箱,选择自定义工具箱,添加COM组件,选择“Microsoft Web 浏览器”(对应文件是\winnt\system32\shdocvw.dll),确定。在工具箱中将会出现文本为Explorer的WebBroser控件图标。
  2、在Form1中添加WebBrowser控件。(对象名却省是axWebBrowser1)
  3、假定要打开的excel文件是: c:\a.xls。
string strFileName = @"c:\a.xls";
Object refmissing = System.Reflection.Missing.Value;
axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
值得注意的是用WebBrowser控件不支持菜单合并,也就是说无法把Excel表的菜单带入到我们的程序中。这是相对于OLE实现方法的一大缺点。幸好提供了可以把工具栏添加进来的功能,通过工具栏可以进行许多Excel专有的操作。
//下面这句可以将excel本身的工具调添加进来
axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER,ref refmissing , ref refmissing);
参考技术A 可以试试使用WebBrowser控件加载一个Execl文件的方法 参考技术B 我给你分析分析 如果你的界面只有一个excel文件 那很好办的 直接用 webbrowser 它有个方法 叫什么axWebBrowser1_NavigateComplete2 (。。。。。。)这里面的参数可以针对excel里面的单元格用代码去修改 如果 你想直接在excel界面里面搞的话 那就更加容易了呀!
Object refmissing = System.Reflection.Missing.Value;
axWebBrowser1.ExecWB (SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER, ref refmissing, ref refmissing);
Object o = e.pDisp;
Object oDocument = o.GetType().InvokeMember("Document", BindingFlags.GetProperty, null, o, null);
Object oApplication = o.GetType().InvokeMember("Application", BindingFlags.GetProperty, null, oDocument, null);
ExcelApp = (Excel.Application)oApplication;
//这样就可以象上文中所述来操作Excel了。
Excel.Worksheet ws = (Excel.Worksheet)ExcelApp.Workbooks[1].Worksheets[1];
string str = ws.get_Range("D4", "D4").Value2.ToString();

这样就把 D4列的值弄出来了 如果你需要同一类很多值 那么就用for循环 查数据就可以了
给你几个地址 自己看吧 懒得写代码了
http://www.cnblogs.com/peterzb/archive/2009/07/21/1527415.html
http://www.cnblogs.com/emanlee/archive/2007/05/31/766520.html
http://www.cnblogs.com/jinglelin/archive/2007/07/31/837722.html
参考技术C 用DataGridView这个控件试试。 参考技术D 加载ExcelSheet至控件中。

以上是关于vb.net怎么访问excel表格的主要内容,如果未能解决你的问题,请参考以下文章

试图在excel电子表格VB.Net上列出文件

将vb.net中怎样生成柱形图

C# winform中以excel的方式编辑表格

VB.NET中的DATAGRIDVIEW怎样只能在表格中输入数字呢

VB.net导出花式Excel

vb.net中如何获得DataGridView单元格内容