2017-08-09 2 views
1

xlsxwriter.add_worksheet()を使用して新しいシートを作成しようとしましたが、古いシートを変更しました。他のシートに影響を与えずに新しいシートを作成できる任意のライブラリと、見つからなかったために.xlsファイル内のシートを削除する方法シートを削除できるxlrdまたはxlsxwriter内の関数。.xlsファイルの古いシートを変更せずにシートを作成/削除するにはどうすればよいですか?

編集:1 win32モジュールを使用して試しました。シートを削除できますが、既存のシートに影響を与えずに新しいシートを作成することはできません。

答えて

0

更新:だから私たちは機能

を呼び出すとき>ここ

import xlrd 
xl_ref = xlrd.open_workbook('Path to file') 

タイプ(xl_ref)< クラスのxlrd.book.Bookです:新しいシートを作成する答え

が見つかり

xl_ref.add_sheet('Test1') 

エラーブックオブジェクトには属性がありません。基本的にはいつでも既存の変更に影響を与えることなく.xlsファイルを操作したい。最初に、ブックオブジェクトに変換する。

from xlutils.copy import copy 
xlwb_ref=copy(xl_ref) 
xlwb_ref.add_sheet('Test1') 
xlwb_ref.save('Path to file') 

参考:

import pythoncom 
    from win32com.client.gencache import EnsureDispatch 
    pythoncom.CoInitialize() #if Calling same thing again and again so better reinitialize. 
    excel = EnsureDispatch("Excel.Application") 
    excel_file = excel.Workbooks.Open("Path to file") 
    sheet = excel.Sheets("Sheet name") 
    sheet.Delete() 
    excel_file.Close(True) 
:シート
を削除 Python_doc

関連する問題