# -*- coding: UTF-8 -*-
import sys
import codecs
import csv
import time
import xlsxwriter as xlwt
reload(sys)
sys.setdefaultencoding('utf8')
class CsvtoExcelHandler(object):
# workbook = xlwt.Workbook()
# 软广标签占比周汇总统计
def csv_to_xlsx(self):
datestr = time.strftime('%m%d', time.localtime(time.time()))
# python2.7 不支持 encoding='utf-8'
# ------------------------------------------
with codecs.open('97.csv', 'r', encoding='utf-8') as f:
read = csv.reader(f)
workbook = xlwt.Workbook("babala.xlsx", {'strings_to_numbers': True,
'strings_to_formulas': True,
#格式调整 'strings_to_urls': True})
style = workbook.add_format(
{'border': 1, 'align': 'center', 'valign': 'vcenter', 'font_size': 12, 'font_color': 'black',
'bold': True, })
sheet = workbook.add_worksheet(u'统计报告') # 创建一个sheet表格
#合并两列
sheet.merge_range('A1:A2', u'名称', style)
sheet.merge_range('B1:C1', u'销售数量', style)
sheet.write('B2', u'自营', style)
sheet.write('C2', u'非自营', style)
sheet.merge_range('D1:D2', u'销售占比', style)
sheet.merge_range('E1:H1', u'非中心销售/频次', style)
sheet.write('E2', u'其他销售', style)
sheet.write('F2', u'百闻销售', style)
sheet.write('G2', u'百丽销售', style)
sheet.write('H2', u'白漆销售', style)
sheet.merge_range('I1:I2', u'非中心销售占比', style)
sheet.merge_range('J1:J2', u'总量', style)
l = 2
for line in read:
print(line)
r = 0
for i in line:
# print(i)
sheet.write(l, r, unicode(i)) # 一个一个将单元格数据写入
r = r + 1
l = l + 1
workbook.close() # 保存Excel
if __name__ == '__main__':
csv_to_xlsx(self="")
这个使用xlsxwriter 模块可以写入100万行的数据比xlwt 好用很多