VB.NET利用openXML读取EXCEL数据(一)

本文分享了作者从VB6转向VB.NET后的经验,详细介绍了如何使用OpenXML在VB.NET中读取Excel文件,解决同事间Office版本兼容问题,并提供了一份简化版的Workbook操作类。希望对其他转战VB.NET的朋友提供实用代码和学习指导。
摘要由CSDN通过智能技术生成

VB.NET利用openXML读取EXCEL数据(一)

我学问浅薄,是VB的死忠。
因为个人爱好,喜欢编编程序,提高工作效率。一直在用vb6,没有改变。
因为需要我在21年学了vb.net,因为64位的office无法使用vb6代码。我原来的代码需要将excel数据导入word,以前一直用oledb。但很多同事没有安装access引擎,wps的根本就没有,下载了access引擎又和源office冲突,调试很麻烦,很多又装不上。于是准备改用openxml。
用openxml问题又来了,网上全是C#的openxml,根本就没有vb.net代码。研究了1个月,终于搞定了如何读excel文件,虽然很多还是不懂,但基本可以用了。我认为用openxml写excel会更难,需要的知识更多。
现在我把vb.net的关于openxml的代码共享出来,给予所有准备用vb.net的盆友躲坑用,也请专业人士给予指教建议和帮助。

一、Excel的workbook对象的建立
为了操作简单,我编写的类,完全是对应Excel com加载项的操作方法,把多余的忽略掉了。比如:取单元格的值,excel是xlbook.worksheets(sheetname).cells(1,1).value,在openxml中,我就设置成了xmlclass.getcellvalue(sheetname,“A1”)

先引用:

Imports DocumentFormat.OpenXml
'Imports DocumentFormat.OpenXml.Office
Imports DocumentFormat.OpenXml.Packaging
'Imports DocumentFormat.OpenXml.Presentation
Imports DocumentFormat.OpenXml.Wordprocessing
Imports DocumentFormat.OpenXml.Spreadsheet

Imports System
Imports System.IO
Imports System.Linq
Imports System.Xml
Imports System.Collections.Generic

Imports System.Collections

Imports System.Text.RegularExpressions

建立一个workbook对象,这个和vb操作workbook一样
‘’’
‘’’ 取得工作簿对象
‘’’
‘’’ 文件名称
‘’’
‘’’
Private Function xmlGetWorkbook(ByVal BookFileName As String) As Boolean

    On Error GoTo csErr

    Dim fileStream As New FileStream(BookFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
    
    spreadsheetDocument = spreadsheetDocument.Open(fileStream, False)

    xlBookPart = spreadsheetDocument.WorkbookPart
    
    Return True

csErr:
Debug.Print(“in xmlGetWorkbook,err:” & Err.Description)
Return False

End Function

这个和网上的c#代码基本一致,不同的是用了FileStream打开文件。 网上代码大部分是直接打开,这样存在一个问题,就是excel文件成为只读,被占用了。
(未完待续)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值