誰かが回避策を知っていますか?OpenOffice Calcがセルの新しい行を正しく処理できないという問題はありますか?openoffice calc - 改行によってセル(pandas/openpyxl)の重複値が発生する
私は、pandas経由でopenpyxlを使ってExcelワークブックを動的に生成しているpythonスクリプトを持っています。
スクリプトは正常に機能しますが、改行を含むOpenOfficeのセルを表示すると、すべての値が複数回複製されます。 Microsoft Excel Viewerを使用して同じファイルを開くと、すべてが正しく表示されます。新しい行(カンマ、#など)以外の文字を使用すると、両方ともうまく表示されます。
マクロを使用してランダムな文字を置き換えることはできますが、プロセスを実際に完全に自動化する必要があるため、可能な場合は避けてください。また、ファイルが別の内部ツールで処理されるため、これらのセルを新しい行で処理する必要があり、文字を変更することはできません。
私はchr(10)やchr(13)を使ってみましたが、前者の場合、期待どおり出力で '\ n'で置き換えられます。
私が現在使用しているコードは次のようになります
:どのような要素データで発生すると、それはのようなものとしてOpenOfficeのCalcのセルに表示されていることである
test_list = []
for x in range(1,18):
test_list.append([
"value1",
"\n".join(['element1', 'element2', 'element3']),
"value3"
])
data_df = pd.DataFrame(test_list)
fn = r'/path/to/excel/file.xlsx'
writer = pd.ExcelWriter(fn, engine='xlsxwriter')
data_df.to_excel(writer, sheet_name='Data', index=False, header=0)
workbook = writer.book
worksheet = writer.sheets['Data']
worksheet.set_column('A:ZZ',50,
workbook.add_format({'text_wrap': True}))
writer.save()
奇妙なことに、最後の項目は正しいようです
リストまたはDataFrame.head()経由で表示されたデータと同じデータが表示されます。
pprint(test_list)
[['value1', 'element1\nelement2\nelement3', 'value3'],
['value1', 'element1\nelement2\nelement3', 'value3'],
['value1', 'element1\nelement2\nelement3', 'value3'],
['value1', 'element1\nelement2\nelement3', 'value3'],
['value1', 'element1\nelement2\nelement3', 'value3'],
['value1', 'element1\nelement2\nelement3', 'value3'],
...
['value1', 'element1\nelement2\nelement3', 'value3']]
data_df.head(18):
0 1 2
0 value1 element1\nelement2\nelement3 value3
1 value1 element1\nelement2\nelement3 value3
2 value1 element1\nelement2\nelement3 value3
...
15 value1 element1\nelement2\nelement3 value3
16 value1 element1\nelement2\nelement3 value3
openpyxlライブラリに渡され、OpenOfficeで表示されたときです。
おかげ
お使いのオペレーティングシステムとOfficeのバージョンは? –
WIndows 10、Excel Viewerだけですが、Excelで正常に機能しています。OpenOffice(4.1.2) – GuHuka