0

多くの場所を検索しようとしましたが、python で xlutils または xlwt を使用して Excel ファイル内の既存のワークシートを削除する方法に関するコードのスニペットの例はありません。誰が私を助けてくれますか?

4

4 に答える 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 に答える