2016-08-14 5 views
1

xlrd를 사용하여 Excel 파일을 읽는 중입니다. xlsxwriter를 통해 매크로 교체 및 쓰기. 형식 정보를 읽거나 복사하지 않고 코드가 작동하지만 형식 정보를 추가하면 오류가 발생합니다 (하단) 코드 조각이 아래에 있습니다. 각 데이터 행에 대해 xls 파일을 읽고 값이있는 토큰 매크로를 바꿉니다. 다시 쓰기. 나는 output_workbook을 닫으려고 할 때 나는 오류를 얻을xlrd에서 읽은 형식을 사용하고 파이썬에서 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 형식은 서로 다른 개체 형식이며 서로 바꿔 사용할 수 없습니다.

서식을 유지하려면 속성을 다른 것으로 변환하는 코드를 작성해야합니다.