できれば Python で、開いているドキュメント スプレッドシートのワークシートをプログラムで削除するにはどうすればよいですか?
https://pypi.python.org/pypi/pyexcel-ods/0.0.3を見ましたが、これを行う方法に関するドキュメントはありません。
を実行するdata.update({"WORKSHEET1": "",})
と、保持したいワークシートと、完全に削除したい WORKSHEET1 の内容を削除するだけです。
ありがとう
できれば Python で、開いているドキュメント スプレッドシートのワークシートをプログラムで削除するにはどうすればよいですか?
https://pypi.python.org/pypi/pyexcel-ods/0.0.3を見ましたが、これを行う方法に関するドキュメントはありません。
を実行するdata.update({"WORKSHEET1": "",})
と、保持したいワークシートと、完全に削除したい WORKSHEET1 の内容を削除するだけです。
ありがとう
簡単な答えは次のとおりです: OrderedDict として読み返し、キー (シート名) を削除し、変更された辞書をファイルに保存します。
ソリューション A. ezodf を使用したソリューションの例:
>>> import ezodf
>>> doc = ezodf.opendoc("sample.ods")
>>> list(doc.sheets.names())
['Sheet1', 'Sheet2', 'Sheet3']
>>> del doc.sheets[1]
>>> doc.save()
>>> exit()
その他のドキュメントはここにあります
ソリューション B. pyexcel-ods を使用したソリューションの例: 1. サンプル ファイルをセットアップしましょう。
>>> from pyexcel_ods import ODSWriter
>>> from collections import OrderedDict
>>> data = OrderedDict()
>>> data.update({"Sheet 1": [[1, 2, 3], [4, 5, 6]]})
>>> data.update({"Sheet 2": [["row 1", "row 2", "row 3"]]})
>>> writer = ODSWriter("your_file.ods")
>>> writer.write(data)
>>> writer.close()
2. 読み返しましょう。
>>> from pyexcel_ods import ODSBook
>>> book2 = ODSBook("your_file.ods")
>>> data=book2.sheets()
>>> data
OrderedDict([(u'Sheet 1', [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]), (u'Sheet 2', [[u'row 1', u'row 2', u'row 3']])])
3. 「シート 1」を削除します。
>>> data.pop('Sheet 1')
[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]
>>> data
OrderedDict([(u'Sheet 2', [[u'row 1', u'row 2', u'row 3']])])
4. 次に、選択したファイルに保存します。
>>> writer2=ODSWriter("your_file2.ods")
>>> writer2.write(data)
>>> writer2.close()
5. 読み返して確認しましょう。
>>> book3=ODSBook("your_file2.ods")
>>> book3.sheets()
OrderedDict([(u'Sheet 2', [[u'row 1', u'row 2', u'row 3']])])