ページ

title

告発\金沢地方検察庁\最高検察庁\法務省\石川県警察御中
弁護士と裁判官が共同で確定させた傷害・準強姦被告事件判決の再捜査要請に係る石川県警察珠洲警察署提出書面の情報公開

殺人未遂事件幇助の被告訴人: 木梨松嗣弁護士(金沢弁護士会)、岡田進弁護士(金沢弁護士会)、長谷川紘之弁護士(金沢弁護士会)、若杉幸平弁護士(金沢弁護士会)
名誉毀損罪の被告訴人: モトケンこと矢部善朗弁護士(京都弁護士会)、小倉秀夫弁護士(東京弁護士会)
市場急配センター株式会社 石川県金沢市駅西本町5丁目10番20所在
作成管理者: 石川県鳳珠郡能登町字宇出津 廣野秀樹
金沢地方検察庁御中

2020年9月22日火曜日

* pythonの「pandasでExcelファイル(xlsx, xls)の書き込み(to_excel)」

* pythonの「pandasでExcelファイル(xlsx, xls)の書き込み(to_excel)」

:CATEGORIES: python

pandasでExcelファイル(xlsx, xls)の書き込み(to_excel) | note.nkmk.me https://note.nkmk.me/python-pandas-to-excel/

 上記のページを参考に次の2つのパッケージをpipでインストールしたところすぐに使えました。

pip install xlwt
pip install openpyxl

 「xlwtは.xlsファイル(Excel2003までのフォーマット)の書き込み、openpyxlは.xlsx(Excel2007以降のフォーマット)の書き込みに使われる。」という説明があります。

 シート名の指定や,インデックス名,カラム名のなしを指定できるとのことです。

```
引数sheet_nameにはシート名を指定する。省略するとSheet1という名前になる。

df.to_excel('data/dst/pandas_to_excel.xlsx', sheet_name='new_sheet_name')
source: pandas_to_excel.py
index(行名), columns(列名)を書き出す必要がない場合は、引数index, columnsをFalseとする。

df.to_excel('data/dst/pandas_to_excel_no_index_header.xlsx', index=False, header=False)

[source:] pandasでExcelファイル(xlsx, xls)の書き込み(to_excel) | note.nkmk.me https://note.nkmk.me/python-pandas-to-excel/
```

```
ExcelWriterオブジェクトのbook属性にopenpyxlで読み込んだWorkbookオブジェクトを指定すると、既存のExcelファイルの新たなシートとしてpandas.DataFrameを追加することができる。

openpyxlを使った処理なので.xlsxファイルのみが対象。

path = 'data/dst/pandas_to_excel.xlsx'

with pd.ExcelWriter(path) as writer:
writer.book = openpyxl.load_workbook(path)
df.to_excel(writer, sheet_name='new_sheet1')
df2.to_excel(writer, sheet_name='new_sheet2')

[source:] pandasでExcelファイル(xlsx, xls)の書き込み(to_excel) | note.nkmk.me https://note.nkmk.me/python-pandas-to-excel/
```

 既存のExcelファイルを指定して,ワークシートの追加が出来るとのことです。同じワークシートに追加する方法は,別のリンクで紹介されているようです。

PythonでExcelファイル(xlsx)を読み書きするopenpyxlの使い方 | note.nkmk.me https://note.nkmk.me/python-openpyxl-usage/

 上記のページをみながら,ipythonでいろいろ試してみました。

```
In [22]: import openpyxl
...: import pprint

In [23]: wb = openpyxl.load_workbook('sample.xlsx')

In [24]: print(tpye(wb))
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
in
----> 1 print(tpye(wb))

NameError: name 'tpye' is not defined

In [25]: print(type(wb))


In [26]: print(wb.sheetnames)
['Sheet1']

In [27]: sheet = wb['sheet1']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in
----> 1 sheet = wb['sheet1']

~/anaconda3/envs/py37_env/lib/python3.7/site-packages/openpyxl/workbook/workbook.py in __getitem__(self, key)
271 if sheet.title == key:
272 return sheet
--> 273 raise KeyError("Worksheet {0} does not exist.".format(key))
274
275 def __delitem__(self, key):

KeyError: 'Worksheet sheet1 does not exist.'

In [28]: sheet = wb['Sheet1']

In [29]: cell = sheet['A1']

In [30]: print(cell.value)
None

In [31]: cell = sheet.cell(row=2, column=1)

In [32]: print(cell.value)
one

In [33]: pprint.pprint(sheet['A2:C4'])
((, , ),
(, , ),
(, , ))

In [34]: sheet['E1'] = 'new'

In [35]: sheet['E2'] = 'new'

In [36]: sheet['F2'] = 'new'

In [37]: def write_list_2d(sheet, l_2d, start_row, start_col):
...: for y, row in enumerate(l_2d):
...: for x, cell in enumerate(row):
...: sheet.cell(row=start_row + y,
...: column=start_col + x,
...: value=l_2d[y][x])
...:
...: l_2d = [['four', 41, 42, 43], ['five', 51, 52, 53]]
...:
...: write_list_2d(sheet, l_2d, 5, 1)

In [38]: wb.save('sample.xlsx')

In [39]: write_list_2d(sheet, l_2d, 7, 1)

In [40]: wb.save('sample.xlsx')

In [41]: write_list_2d(sheet, l_2d, 13, 1)

In [42]: wb.save('sample.xlsx')

In [43]:
```

0 件のコメント:

コメントを投稿