多くの場所を検索しようとしましたが、python で xlutils または xlwt を使用して Excel ファイル内の既存のワークシートを削除する方法に関するコードのスニペットの例はありません。誰が私を助けてくれますか?
質問する
10124 次
4 に答える
4
私はちょうどこれに対処しました。これは一般的に適切なコーディングの選択ではありませんが、内部のWorkbook _worksheets を使用して、ワークブック オブジェクトのワークシートにアクセスして設定することができます。
write_book._Workbook__worksheets = [write_book._Workbook__worksheets[0]]
これにより、ワークブックに関連付けられた最初のワークシート以外のすべてが削除されます
于 2012-07-17T02:04:10.673 に答える
2
Davidが提供した回答を使用して、これが機能することを確認したかっただけです。これは、独自のワークブックに分割する必要がある 40 以上のシートを含むスプレッドシート (ワークブック) がある場所の例です。マスター ワークブックをコピーして、1 枚のシートを除いてすべて削除し、新しいスプレッドシートに保存しました。
from xlrd import open_workbook
from xlutils import copy
workbook = open_workbook(filepath)
# Process each sheet
for sheet in workbook.sheets():
# Make a copy of the master worksheet
new_workbook = copy.copy(workbook)
# for each time we copy the master workbook, remove all sheets except
# for the curren sheet (as defined by sheet.name)
new_workbook._Workbook__worksheets = [ worksheet for worksheet in new_workbook._Workbook__worksheets if worksheet.name == sheet.name ]
# Save the new_workbook based on sheet.name
new_workbook.save('{}_workbook.xls'.format(sheet.name))
于 2012-08-23T00:50:00.720 に答える
-1
これらのモジュールについてはわかりませんが、win32 を試すことができます
from win32com import client
def delete(self, number = 1):
"""
(if the sheet is the first use 1. -1 to use real number)
example: r.delete(1)
"""
sheetnumber = int(number) - 1
于 2012-04-10T09:27:01.307 に答える