2014-02-11 1 views
0

프로그램에서 Excel 스프레드 시트에서 가져 오는 통화 개체를 처리 할 수없는 문제가 있습니다. 코드가 실행되고 통화를 변경하면서이 오류 이외의 다른 것을 원합니다. 다음은 코드를 실행할 때 나타나는 오류입니다. 이에 대한 권장 사항이 있습니까?통화 개체가 10 진수로 변경됩니다 .12 진수 인스턴스가 사용됩니다.

FutureWarning : 통화 개체가 곧 변경되어 decimal.Decimal 인스턴스가 사용됩니다. (. 설정 pythoncom future_currency 이제 이러한 개체를 얻을 수 있습니다.)

는 여기에 내가 실행하고 코드입니다 :

import sys, os, win32com.client, glob 
from win32com.client import constants 
xl = Excel_Document() 

headerlist = ['STUDYDES','STUDYDES2','EVENTTYPE','AssessmentSOLUTIONTYPE','AssessmenFDNS-TERMINATION','SOLUTIONTYPE','FDNS-TERMINATION','GROUP','SCENARIO','ProviderOASISReservation','CustomerName','RequestedStart_Date'] 

ListofData = [] 
Data = [] 
counter = 1 
xlslist = glob.glob('*tblFacilityLog*.xls') 



for xls in xlslist: 
    headers = {} 
    sortedvalues = [] 
    output = {} 
    print 'Opening Workbook: ',xls 
    xl.openWorkbook(xls) 

    sheetdata = xl.getSheetData('tblAllFacilityLog') 
    xl.closeWorkbook() 

    for row in sheetdata: 
     sortedvalues = [] 
     for header in headerlist: 
      if header in sheetdata[0]: 
       output[header] = row[sheetdata[0].index(header)] 
      else: 
       output[header] = "'None'" 

     for header in headerlist: 
      sortedvalues.append(output[header]) 

     Data.append(sortedvalues) 

    ListofData.append(Data) 

print 'Building Workbook' 
print len(Data) 
print len(ListofData) 

xl.addWorkbook() 
xl.addWorksheet("tblFacilityLog9") 
xl.selectSheet("tblFacilityLog9") 


beginrow = 1 
lastrow = beginrow + len(Data) 
#xl.pasteData(headerlist, startcol = beginrow, startrow = beginrow, endcol = len(headerlist), endrow = 1) 

for Data in ListofData: 
    xl.pasteData(Data, startcol = 1, startrow = 1, endcol = len(headerlist), endrow = lastrow) 

xl.saveWorkbook("CombinedLog") 
xl.closeWorkbook() 
xl.closeApp() 
+0

이 코드의 어떤 부분이 통화 개체를 다루고 있습니까? –

+0

아마도 Excel 스프레드 시트에서 읽고있는 내용 일 것입니다. – KodyVanRy

+0

xlrd를 사용하면 ... 내 두 센트가 ... 'xlsm' 또는'xls' 이외의 다른 타입이 절대적으로 필요하지 않는 한 –

답변

0

이 오류는 의미 : 지금 경고를 무시 작동하는 경우. 파이썬 컴 모듈을 업데이트하지 않는다면 아무런 문제가 없습니다. 당신이 pythoncom의 최신 버전을 사용하려면 곧 당신은이 오류에 대한 이해입니다

import pythoncom 
pythoncom.__future_currency__ = True # I guess it is True 

를 수행하여 새로운 기능을 시도 할 수 있습니다.