我正在构建一个编写*.xlsx
个文件的控制台应用程序。理想情况下(并规划未来的功能)我还想阅读现有文件并编写修改后的版本。因此,我觉得python包openpyxl
在可用选项中是最好的,因为它具有读写功能。
未冻结的代码按预期工作。
虽然使用py2exe
冻结代码会产生一个没有重大问题的可执行文件,但它在运行时会崩溃。对于32位和64位版本的环境,结果都是相同的。
我正在开发:
py2exe
== 0.9.2.2 openpyxl
== 2.3.0-b1 测试文件是:
""" main_openpyxl.py """
from openpyxl import Workbook
if __name__ == '__main__':
print('creating a workbook')
wb = Workbook()
ws = wb.active
ws['A1'] = 'foo'
wb.save('test.xlsx')
print('done')
和
""" setup.py """
from distutils.core import setup
import py2exe
setup(
console=['main.py'],
options={
'py2exe': {
'bundle_files': 2
}
}
)
注意,使用替代包(xlsxwriter
)确实会生成可执行的可执行文件:
""" main_xlsxwriter.py """
from xlsxwriter import Workbook
if __name__ == '__main__':
print('creating a workbook')
wb = Workbook('test.xlsx')
ws = wb.add_worksheet()
ws.write('A1', 'foo')
wb.close()
print('done')
但是这个包明确地只创建*.xlsx
个文件。
另外值得一提的是,我有目的地避免使用pandas
。
因此,任何人都可以建议一个适用于openpyxl
的解决方案吗?