不管是使用vb6还是vb.net,处理excel都需要引用office的对象库,遇到所安装的excel版本发生变化,则会遇到令人头痛的兼容问题。
经过摸索,我发现可以先由python实现excel的处理,再用vb6调用,解决了因为安装excel的版本不同导致的兼容问题。
以下以csv和excel文件的互相转换为例,演示vb6操作excel的通用操作过程。
一、使用python实现csv和xls、xlsx的互转
需要安装python的第三方库:xlwt,xlrd,openpyxl,具体代码如下,脚本的逻辑和注意事项见注释:
import sys
import os
import xlrd
import xlwt
import openpyxl
import pathlib
#openpyxl记录excel行列均从1开始,xlrd、xlwt记录excel行列则从0开始
#xlrd、xlwt操作excel完毕,不需要使用close()关闭excel
def csv2xlsx(cn,xn):
#csv转xlsx,遍历csv,转成xlsx
wb=openpyxl.Workbook() #创建workbook对象
worksheet=wb.worksheets[0] #获取第一个sheet
row_num=1
with open(cn) as f:
for eachline in f:
tmplist=eachline.split(',')
for field_num,eachfield in enumerate(tmplist,1):
tmpfield=eachfiel