指定された列スタイルを持つ既存の.xlsx
ファイルがあるとします。最小の例として、空のsample.xlsx
ファイルを作成し、列A
をクリックすると、数字スタイルがPercent
に設定されます(デフォルトのGeneral
とは対照的に)。openpyxlの新しいセルの列のスタイルを使用
次に、プリントの出力がCell format is 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)
を実行します。 sample_new.xlsx
がに開かれた場合、A1
セルの内容は実際に3.1415926
であり、セルスタイルはGeneral
です。興味深いことに、LibreOffice Calc
で開いた場合、セルは希望通りに表示されます314.16%
とセルスタイルはPercent
と表示されます。
、しかし、元のsample.xlsx
ファイルのいずれかで直接細胞A1
のプロパティを設定し、Excel
とLibreOffice
の両方で期待どおりではない全体A
-columnで、フォーマットは、動作する場合、コードが印刷Cell format is Percent
つつ。
実際には、元の列の書式設定(ファイルごとに異なる可能性があります)を維持して、既存の.xlsx
ファイルに追加する必要があります。どのように達成するのですか?
私はopenpyxlの2.4.0バージョンを使用しています。
私はそれを動的に行うことはできますか?私はあらかじめ列のフォーマットを知っていませんが、与えられた '.xlsx'ファイルで指定されています。 openpyxl内でカラムフォーマットを取得できますか? –
また、 'LibreOffice'が異なった(そして望ましい)書式を示す理由は何ですか? –
はい、ブック内の関連する「ColumnDimension」を検索できます。 LOとMS Excelは、使用との対話が重要なアプリケーションであり、openpyxlはファイル形式ライブラリです。私たちは将来、ある時点で機能を再訪するかもしれませんが、現時点では事態を遅らせることができる反パターンです。私はむしろできるだけ速く走っていました。 –