def get_all_data(fname, sheet='Sheet1', conv2numb=False): ''' return all data as a list of lists ''' wb = open_workbook(fname) sh = wb.sheet_by_name(sheet) nrows = sh.nrows ncols = sh.ncols data = [] for r in range(nrows): row = [] data.append(row) for c in range(ncols): val = str(sh.cell_value(r, c)) if conv2numb: val = string2number(val) row.append(val) return data
def get_all_data(fname,sheet='Sheet1',conv2numb=False): ''' return all data as a list of lists ''' wb = open_workbook(fname) sh = wb.sheet_by_name(sheet) nrows = sh.nrows ncols = sh.ncols data = [] for r in range(nrows): row = [] data.append(row) for c in range(ncols): val = str(sh.cell_value(r,c)) if conv2numb: val = string2number(val) row.append(val) return data
#fore-colour actually seems to set the background colour of the cell styleA = xlwt.easyxf('pattern:pattern solid, fore-colour yellow') styleB = xlwt.easyxf('pattern:pattern solid, fore-colour cyan_ega') styleH = xlwt.easyxf('pattern:pattern solid, fore-colour green') styleM = xlwt.easyxf('pattern:pattern solid, fore-colour red') #styleA = xlwt.easyxf('pattern:pattern solid, fore-colour green') #styleB = xlwt.easyxf('pattern:pattern solid, fore-colour red') #styleH = xlwt.easyxf('pattern:pattern solid, fore-colour blue') #styleDEF = xlwt.easyxf('pattern:pattern solid, fore-colour blue') for shname in sheets: out_sh = out_wb.add_sheet(shname) data = get_all_data(inpfile,sheet=shname) for r,row in enumerate(data): for c,value in enumerate(row): if value == 'A': out_sh.write(r,c,string2number(value),style=styleA) elif value == 'B': out_sh.write(r,c,string2number(value),style=styleB) elif value == 'H': out_sh.write(r,c,string2number(value),style=styleH) elif value == '-': out_sh.write(r,c,string2number(value),style=styleM) else: out_sh.write(r,c,string2number(value)) out_wb.save(outfile)
usage=\ ''' usage: csv2excel.py <csv_file>... > <excel_file> ''' if len(sys.argv) == 1: print usage exit() inpfiles = sys.argv[1:] outfile = sys.stdout workbook = xlwt.Workbook() for inpfile in inpfiles: f = open(inpfile,'rb') data = [row for row in csv.reader(f)] f.close() sheetname = os.path.basename(inpfile).split('.')[0] sheet = workbook.add_sheet(sheetname) for r,row in enumerate(data): for c,value in enumerate(row): sheet.write(r,c,string2number(value)) workbook.save(outfile)
#fore-colour actually seems to set the background colour of the cell styleA = xlwt.easyxf('pattern:pattern solid, fore-colour yellow') styleB = xlwt.easyxf('pattern:pattern solid, fore-colour cyan_ega') styleH = xlwt.easyxf('pattern:pattern solid, fore-colour green') styleM = xlwt.easyxf('pattern:pattern solid, fore-colour red') #styleA = xlwt.easyxf('pattern:pattern solid, fore-colour green') #styleB = xlwt.easyxf('pattern:pattern solid, fore-colour red') #styleH = xlwt.easyxf('pattern:pattern solid, fore-colour blue') #styleDEF = xlwt.easyxf('pattern:pattern solid, fore-colour blue') for shname in sheets: out_sh = out_wb.add_sheet(shname) data = get_all_data(inpfile, sheet=shname) for r, row in enumerate(data): for c, value in enumerate(row): if value == 'A': out_sh.write(r, c, string2number(value), style=styleA) elif value == 'B': out_sh.write(r, c, string2number(value), style=styleB) elif value == 'H': out_sh.write(r, c, string2number(value), style=styleH) elif value == '-': out_sh.write(r, c, string2number(value), style=styleM) else: out_sh.write(r, c, string2number(value)) out_wb.save(outfile)