spire.xls for python 16.8.2 现已正式发布。该版本支持宏(vba)功能,包括添加、获取和删除 vba 工程,以及转换 excel 到 pdf 时配置 pdf 加密。同时,在组合使用多个 copyrangeoptions 枚举值时报错的问题也得以成功被修复。更多详情如下。
新功能:
- 支持宏(vba)功能,包括添加、获取和删除 vba 工程。
- 支持转换 excel 到 pdf 时,配置 pdf 加密。
//1.add
workbook = workbook()
# add vba project to document
vbaproject = workbook.vbaproject
vbaproject.name = "samplevbamacro"
text = "code page before modification: " str(vbaproject.codepage) "\n"
vbaproject.codepage = 936 # set encoding to support chinese characters
text = "code page after modification: " str(vbaproject.codepage) "\n"
file.writealltext(outputfile_txt, text)
vbamodule = vbaproject.modules.add("samplemodule", vbamoduletype.module)
# does not support chinese characters
vbamodule.sourcecode = """
sub examplemacro()
' declare variables
dim ws as worksheet
dim i as integer
' set reference to active worksheet
set ws = activesheet
' clear worksheet content (optional)
ws.cells.clear
' fill sample data
with ws
' write header row
.range("a1: c1").value = array("serial no.", "project name", "amount")
' loop to fill 10 rows of data
for i = 1 to 10
.cells(i 1, 1).value = i ' serial number column
.cells(i 1, 2).value = "project " & i ' project name column
.cells(i 1, 3).value = i * 100 ' amount column (sample calculation)
next i
' auto-fit column widths
.columns("a:c").autofit
' format header row
with.range("a1:c1")
.font.bold = true
.interior.color = rgb(200, 220, 255) ' light blue background
end with
' format amount column
.range("c2:c11").numberformat = "$#,##0.00"
end with
' show completion message
msgbox "data population complete!", vbinformation, "operation prompt"
end sub"""
workbook.savetofile(outputfile_xls, fileformat.version97to2003)
workbook.savetofile(outputfile_xlsb, fileformat.xlsb2007)
workbook.savetofile(outputfile_xlsm, fileformat.xlsm)
workbook.savetofile(outputfile_xltm, fileformat.xltm)
workbook.dispose()
//2.obtain and modify
workbook = workbook()
workbook.loadfromfile(inputfile)
worksheet = workbook.worksheets[0]
vbaproject = workbook.vbaproject
// modify worksheet module
mod = vbaproject.modules.getworksheetmodule(worksheet)
mod.name = "ivbamodule"
mod.sourcecode = "dim lrow as long"
mod.type = vbamoduletype.module
// save file
workbook.savetofile(outputfile)
workbook.dispose()
//3. delete
workbook1 = workbook()
workbook1.loadfromfile(inputfile_module)
vbaproject1 = workbook1.vbaproject
vbaproject1.modules.remove("samplemodule")
workbook1.savetofile(outputfile_1)
workbook1.dispose()
workbook = workbook()
#load a excel document
workbook.loadfromfile(inputfile)
#set permission password and permissions to encrypt converted pdf
workbook.convertersetting.pdfsecurity.encrypt("123", pdfpermissionsflags.print)
#convert excel to pdf
workbook.savetofile(outputfile, fileformat.pdf)
workbook.dispose()
问题修复:
- 修复了 copyrangeoptions 多个枚举值组合使用时报错的问题。
获取 spire.xls for python 16.8.2 请点击:




