最近工作老是与excel打交道:解析数据写入excel以及将多个excel内容整合到一个excel中,在网上也确实学习到了一些技能,在此记录下来,以供后续方便使用。 我用的第三方库是xlsxwriter,因为这个库对excel操作无行数限制,适合操作大量数据。但不足的是这个库好像只有写的功能,所以常常需要和xlrd这个第三方库配合使用! 今天的例子是整个学生表,姓名啥的都是随机生成的,请不要在意数据的合理性,因为我们主要看的是功能的实现! 首先,写入表头,看代码:
import xlsxwriter def write_title(): merge_format=book.add_format({ 'border': 1, # 边框 'align': 'center', # 水平居中 'valign': 'vcenter', # 垂直居中 # 'bold': True, # 加粗(默认False) # 'font': u'宋体', # 字体 'fg_color': 'green', # 背景色 # 'color': 'green' #字体颜色 }) new_sheet.merge_range(0,0,1,0,'班级',merge_format) new_sheet.merge_range(0,1,0,3,'信息',merge_format) new_sheet.write(1,1,'姓名',merge_format) new_sheet.write(1,2,'性别',merge_format) new_sheet.write(1,3,'年龄',merge_format) def write_data(): pass if __name__ == '__main__': book=xlsxwriter.Workbook('students.xlsx') #实例化表格 new_sheet=book.add_worksheet('students') #生成sheet页 write_title() book.close() #保存表格效果图如下: 接下来填写数据,我这里的数据是写在txt文档中的,要先对txt文档进行解析,文档中内容,如下图所示:
def write_data(): sheet_format = book.add_format({ 'border': 1, 'align': 'center', # 水平居中 'valign': 'vcenter' }) with open('students','r',encoding='utf-8')as f: st_lists=f.readlines() row=2 for st in st_lists: classes=st.strip().split(' ')[3] name=st.strip().split(' ')[0] age=st.strip().split(' ')[1] gender=st.strip().split(' ')[2] new_sheet.write(row,0,classes,sheet_format) new_sheet.write(row,1,name,sheet_format) new_sheet.write(row,2,gender,sheet_format) new_sheet.write(row,3,age,sheet_format) row+=1效果图如下: