假设存在具有指定列样式的现有.xlsx
文件。作为最小示例,创建一个空的sample.xlsx
文件,并通过单击列A
将其数字样式设置为Percent
(与默认General
相反)。
现在,执行以下代码
import openpyxl as pyxl
import math
sample = 'sample.xlsx'
new = 'sample_new.xlsx'
wb = pyxl.load_workbook(sample)
ws = wb.active
ws['A1'] = math.pi
print 'Cell format is %s' % ws['A1'].number_format
wb.save(new)
打印输出为Cell format is General
。在sample_new.xlsx
中打开Excel
时,A1
单元格的内容确实为3.1415926
,单元格样式为General
。有趣的是,如果在LibreOffice Calc
中打开,则单元格显示为所需314.16%
,单元格样式显示为Percent
。
但是,如果在原始sample.xlsx
文件中直接设置了单元格A1
的属性而不是整个A
- 列的属性,则格式在{ {1}}和Excel
,代码打印LibreOffice
。
实际上,我需要附加到现有的Cell format is Percent
文件,保留原始列格式(可能因文件而异)。我如何实现这一目标?
我使用2.4.0版本的openpyxl。
答案 0 :(得分:0)
您必须手动设置所有单元格样式。规范中的列和行样式并不符合预期。他们承诺在创建新单元时应该做些什么。有各种原因,但速度是主要原因,为什么我们不在openpyxl中这样做。