不写入Excel文件

时间:2015-07-22 10:36:55

标签: python python-2.7 xlsxwriter

我正在从一个名为SPD_file的文件中读取数据。将数据与名为Custom的另一个文件进行匹配。并且两个文件中匹配的所有记录都将写入第三个文件。

但似乎有些问题,因为代码匹配记录并在控制台上打印。但是当我写入另一个文件时,除了标题之外,没有任何内容进入新文件。

 workbook = xlrd.open_workbook(SPD_file)
 worksheets = workbook.sheet_names()
 mapping_records = {}
 for worksheet_name in worksheets:
    worksheet = workbook.sheet_by_name(worksheet_name)
    mapping_record = MappingRecord()
 if worksheet_name == "CD":
    for curr_row in range(0,worksheet.nrows):
        mapping_record = worksheet.row(curr_row)
        print worksheet_name
        print mapping_record[0].value
        for curr_row in mapping_record:
            #print "In Loop...."
            spd_record = MappingRecord()
            spd_record.id = "00002269"
            spd_record.erocode = None
            spd_record.scno = None
            mapping_records[mapping_record[8]] = spd_record
print "Read SPD File....."

custom_file_name = "Custom_" + today.strftime('%Y-%m-%d') + ".csv"
custom_file =  ops_home + path + "\\" + custom_file_name
custom = open(custom_file, 'rb')
reader = csv.reader(custom, delimiter=',', quotechar='"')
for line in reader:
    if mapping_records.has_key(mapping_record[8]): 
        spd_record = mapping_records[mapping_record[8]]
        if line[7] == "ERO Code":
            spd_record.erocode = line[8]
        elif line[7] == "Service Number":
            spd_record.scno = line[8]


#create a new file.
New_file = ops_home + '\\Reports\\SPD_new_' + today.strftime('%d%m%Y') +   '.xlsx'
workbook = xlsxwriter.Workbook(New_file)                                                            
# Add a bold format to use to highlight cells.
bold = workbook.add_format({'bold': 1})
money = workbook.add_format({'num_format': '#,##0.00'})
worksheetCd = workbook.add_worksheet("CD")
cdHeader = ("Merchant ID", "EroCode", "Service Number")
cd_row = 0
cd_col = 0
for columnHeader in cdHeader:
    worksheetCd.write(cd_row, cd_col, columnHeader,bold)
    cd_col += 1
    for ctx in mapping_records:
        spd_record = mapping_records[ctx]
        if spd_record.payment_mode == "CRD":
            cd_row += 1
            cd_col = 0
            cdRow = (spd_record.id, spd_record.erocode, spd_record.scno)
        for columnData in cdRow:
           if cd_col == 5 or cd_col == 19 or cd_col ==20 or cd_col ==21:
             worksheetCd.write_number(cd_row, cd_col, columnData, money)
           else:
             worksheetCd.write(cd_row, cd_col, columnData)
           cd_col += 1
workbook.close()   

0 个答案:

没有答案