2016-08-14 6 views
1

xlrdを使ってExcelファイルを読んでいます。いくつかのマクロを置き換えてから、xlsxwriterを使って書きます。フォーマット情報を読んだりコピーしたりしなければ、コードは機能しますが、書式設定情報を追加するとエラーが表示されます。(下にあります) コードスニペットは下にあります。xlsファイルを読み込み、各データ行ごとにトークンマクロを値返事を書く。私はoutput_workbookを閉じようとするとき、私は、エラーxlrdから読み込んだ書式とpythonでxlsxwriterを書き込む方法

filePath = os.path.realpath(os.path.join(inputPath,filename)) 
    input_workbook = open_workbook(filePath, formatting_info=True) 
    input_DataSheet = input_workbook.sheet_by_index(0) 
    data = [[input_DataSheet.cell_value(r,c) for c in range(input_DataSheet.ncols)] for r in range(input_DataSheet.nrows)] 

    output_workbook = xlsxwriter.Workbook('C:\Users\Manish\Downloads\Sunny\Drexel_Funding\MacroReplacer\demo.xlsx') 
    output_worksheet = output_workbook.add_worksheet() 

    for rowIndex, value in enumerate(data): 
     copyItem = [] 

     for individualItem in value: 
      tempItem = individualItem 

      if (isinstance(individualItem, basestring)): 
       tempItem = tempItem.replace("[{0}]".format(investorNameMacro), investorName) 
       tempItem = tempItem.replace("[{0}]".format(investorPhoneMacro), investorPhone) 
       tempItem = tempItem.replace("[{0}]".format(investorEmailMacro), investorEmail) 
       tempItem = tempItem.replace("[{0}]".format(loanNumberMacro), loanNumber) 

      copyItem.append(tempItem) 

     for columnIndex, val in enumerate(copyItem): 
      fmt =input_workbook.xf_list[input_DataSheet.cell(rowIndex,columnIndex).xf_index] 
      output_worksheet.write(rowIndex,columnIndex, val,fmt) 

    output_workbook.close() 

を取得し、私は取得エラーが

トレースバック(最新の呼び出しの最後)である: ファイル「C:/ユーザー/マニッシュ/ダウンロード/晴れ/ Drexel_Funding/MacroReplacer/drexelfundingmacroreplacer.py "、87行目、 output_workbook.close() ファイル" build \ bdist.win-amd64 \ egg \ xlsxwriter \ workbook.py "、297行目、閉じる ファイル" build \ bdist .win-amd64 \ egg \ xlsxwriter \ workbook.py "、行605、_store_workbook ファイル" build \ bdist.win-amd64 \ egg \ xlsxwriter \ packager.py "、行131、_create_package ファイル "build \ bdist.win-amd64 \ egg \ xlsxwriter \ packager.py"、行189、_write_worksheet_files ファイル "build \ bdist.win-amd64 \ egg \ xlsxwriter \ worksheet.py"、行3426、_assemble_xml_file ファイル "build \ bdist.win-amd64 \ egg \ xlsxwriter \ worksheet.py"、行4829、_write_sheet_data ファイル "build \ bdist.win-amd64 \ egg \ xlsxwriter \ worksheet.py"、行5015、_write_rows _write_cell はAttributeErrorで ファイル "のビルド\ bdist.win-AMD64 \卵\ xlsxwriterの\のworksheet.py"、行5183は、: 'XF' オブジェクトは、任意のヘルプは高く評価され

何の属性 '_get_xf_index' を持っていない

ありがとう

答えて

0

XlrdとXlsxWriter形式は異なるオブジェクト型であり、互換性はありません。

フォーマットを保持するには、プロパティを変換するコードを記述する必要があります。

関連する問題