Python csv转换为excel学习笔记:
openpyxl模块需要安装pip install openpyxl
import openpyxl import csv '''读取csv文件写入excel表格''' #创建工作簿对象 work_book = openpyxl.Workbook() #创建sheet work_sheet = work_book.create_sheet(title=u"cpu和内存") #打开csv文件,没有异常捕获,没有定义成函数,做成模块更好 csvfile = open('20170615.csv','rb') #获取csv.reader lines = csv.reader(csvfile) #row row = 1 #sheet第一行,就叫他标题吧 title_list=[u'采集时间',u'主机',u'CPU使用率(%)',u'MEM使用率(%)'] #写入第一行,标题 for i in range(1,title_len+1): work_sheet.cell(row = row, column = i).value = title_list[i-1] #从第二行开始写入从csv读取的内容 for line in lines: lin = 1 for i in line: work_sheet.cell(row = row +1, column = lin).value = i lin += 1 row += 1 #关闭文件 csvfile.close() #保存工作表 work_book.save('20170615_cpu.xlsx')
下面是一个Excel转csv的代码,网上借鉴,可以直接作为模块使用:
# -*- coding: utf-8 -*- import xlrd import csv from os import sys def csv_from_excel(excel_file): workbook = xlrd.open_workbook(excel_file) all_worksheets = workbook.sheet_names() for worksheet_name in all_worksheets: worksheet = workbook.sheet_by_name(worksheet_name) your_csv_file = open(''.join([worksheet_name,'.csv']), 'wb') wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL) for rownum in xrange(worksheet.nrows): wr.writerow([unicode(entry).encode("utf-8") for entry in worksheet.row_values(rownum)]) your_csv_file.close() if __name__ == "__main__": csv_from_excel(sys.argv[1])