文章目录
(一)xlwt完整示例(二) xlwt,xlrd,xlutils完整示例(三)自主选择excel的存储位置(四)表格样式速查(五)+样式示例代码(注释版)(一)xlwt完整示例
# 0.导入xlst模块import xlwt# 1.创建 Workbookwb = xlwt.Workbook()# 2.创建 worksheetws = wb.add_sheet('test_sheet')# 3.写入第一行内容 ws.write(a, b, c) a:行,b:列,c:内容ws.write(0, 0, '球队')ws.write(0, 1, '号码')ws.write(0, 2, '姓名')ws.write(0, 3, '位置')#4.写入一些数据data = [{'Team': '湖人','Number': '34','Name': '奥尼尔','Positions': '中锋'},{'Team': '湖人','Number': '24','Name': '科比','Positions': '后卫'},{'Team': '湖人','Number': '23','Name': '詹姆斯','Positions': '前锋'}]for i, item in enumerate(data):ws.write(i+1, 0, item['Team'])ws.write(i+1, 1, item['Number'])ws.write(i+1, 2, item['Name'])ws.write(i+1, 3, item['Positions'])#5.保存文件wb.save('myExcel.xls')
(二) xlwt,xlrd,xlutils完整示例
新建excel、打开excel增添新数据
import xlwtimport xlrdfrom xlutils.copy import copywb = xlwt.Workbook(encoding = 'utf-8') # 创建一个excel #ascii'可视为'utf-8'的一部分,so用'utf-8'更好ws = wb.add_sheet('A Test Sheet') # 新建一个表ws.write(0, 0, 'Team')ws.write(0, 1, 'Number')ws.write(0, 2, 'Name')ws.write(0, 3, 'Positions')data = [ #一个列表{'Team': '湖人','Number': '34','Name': '奥尼尔','Positions': '中锋'},{'Team': '湖人','Number': '24','Name': '科比','Positions': '后卫'},{'Team': '湖人','Number': '23','Name': '詹姆斯','Positions': '前锋'}]#print(type(data))for i, item in enumerate(data):ws.write(i + 1, 0, item['Team'])ws.write(i + 1, 1, item['Number'])ws.write(i + 1, 2, item['Name'])ws.write(i + 1, 3, item['Positions'])#print(type(item))wb.save('example.xls') # 保存xls# ----- 打开excel添加数据 -------filename = 'example.xls'# 文件名wb = xlrd.open_workbook(filename, formatting_info=True) # formatting_info=True: 保留原数据格式newb = copy(wb) # 复制页面ws = newb.get_sheet(0) # 取第一个sheetws.write(6, 6, "test")newb.save(filename) # 保存文件#支持03版到13版,保存的格式目前只支持03版本的xls格式,07以后的版本xlsx不支持
(三)自主选择excel的存储位置
import tkinter.filedialogimport numpy as npimport xlwtimport xlrdfrom xlutils.copy import copywb = xlwt.Workbook(encoding = 'utf-8') # 创建一个excel #ascii'可视为'utf-8'的一部分,so用'utf-8'更好# booksheet = workbook.add_sheet('Sheet 1', cell_overwrite_ok=True) # 第二参数用于确认同一个cell单元是否可以覆盖填写ws = wb.add_sheet('A Test Sheet') # 新建一个表ws.write(0, 0, 'Team')ws.write(0, 1, 'Number')ws.write(0, 2, 'Name')ws.write(0, 3, 'Positions')data = [ #一个列表{'Team': '湖人','Number': '34','Name': '奥尼尔','Positions': '中锋'},{'Team': '湖人','Number': '24','Name': '科比','Positions': '后卫'},{'Team': '湖人','Number': '23','Name': '詹姆斯','Positions': '前锋'}]#print("data的类型:",type(data))for i, item in enumerate(data):ws.write(i + 1, 0, item['Team'])ws.write(i + 1, 1, item['Number'])ws.write(i + 1, 2, item['Name'])ws.write(i + 1, 3, item['Positions'])#print("item的类型:",type(item))filename = tkinter.filedialog.asksaveasfilename(filetypes=[('xlsx', '*.xlsx')],initialdir='D:\\')filename = filename + '.xls'wb.save(filename)
源码链接——python 自己选择excel保存的位置
注:如果不加以下两行代码:
root = tkinter.Tk() # 创建一个Tkinter.Tk()实例root.withdraw() # 将Tkinter.Tk()实例隐藏
程序运行后会出现一个小框:
(四)表格样式速查
Python xlwt,xlrd语法
xlrd和xlwt模块的小栗子 - /xiao-apple36/p/9603499.html
python xlwt 设置单元格样式 ——/p/0f0cfffc949b
xlwt.Borders()Example ——/python/example/60028/xlwt.Borders
xlwt easyxf()能理解的颜色预览——/haowells/article/details/37928175
xlwt设置列宽、行高——/weixin_42122355/article/details/83536142
Widths & Heights with xlwt ——/b//10/widths-heights-with-xlwt-python/
(五)+样式示例代码(注释版)
import xlwtimport xlrdfrom datetime import datetime, datefrom xlutils.copy import copydef set_style(name, height, bold=False, format_str=''):style = xlwt.XFStyle() # 初始化样式font = xlwt.Font() # 创建字体font.name = name # 'Times New Roman'font.bold = bold # 黑体font.height = heightborders = xlwt.Borders() # 创建边框borders.left = 2borders.right = 2borders.top = 2borders.bottom = 2#细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7#大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13al = xlwt.Alignment() #单元格对齐方式# 垂直对齐al.horz = 0x02# 水平对齐al.vert = 0x01# 换行al.wrap = al.WRAP_AT_RIGHT# horz水平对齐方式:HORZ_LEFT = 0x01 左端,_CENTER = 0x02,_RIGHT = 0x03 右端# vert垂直对齐方式: VERT_TOP = 0x00 上端,_CENTER = 0x01,_BOTTOM = 0x02 底端对齐# style = xlwt.XFStyle() # 初始化样式style.font = font # Add font to stylestyle.borders = borders # Add borders to stylestyle.num_format_str = format_str #数据类型return stylewb = xlwt.Workbook(encoding = 'utf-8') # 创建一个excel #ascii'可视为'utf-8'的一部分,so用'utf-8'更好ws = wb.add_sheet('A Test Sheet') # 新建一个表#ws.col(0).width = 256 * 10 # 设置第一列列宽 # 256为衡量单位/基准数,20表示20个字符宽度#ws.col(1).width = 256 * 10# 往单元格写入内容 (行,列,内容,style or 空)#ws.write(10, 1, 1234.56, set_style('Times New Roman', 220,bold=False, format_str='#,##0.00'))#ws.write(11, 1, datetime.now(), set_style('Times New Roman',220,bold=False, format_str='DD-MM-YYYY'))#ws.write(12, 1, xlwt.Formula("A3+B3"),set_style('Times New Roman', 220,bold=False, format_str='#,##0.00'))#_______________________________________________正文ws.write(0, 0, 'Team')ws.write(0, 1, 'Number')ws.write(0, 2, 'Name')ws.write(0, 3, 'Positions')data = [ #一个列表{'Team': '湖人','Number': '34','Name': '奥尼尔','Positions': '中锋'},{'Team': '湖人','Number': '24','Name': '科比','Positions': '后卫'},{'Team': '湖人','Number': '23','Name': '詹姆斯','Positions': '前锋'}]print(type(data))for i, item in enumerate(data):ws.write(i + 1, 0, item['Team'])ws.write(i + 1, 1, item['Number'])ws.write(i + 1, 2, item['Name'])ws.write(i + 1, 3, item['Positions'])print(type(item))wb.save('example.xls') # 保存xls# ----- 打开excel添加数据 -------filename = 'example.xls'# 文件名wb = xlrd.open_workbook(filename, formatting_info=True) # formatting_info=True: 保留原数据格式newb = copy(wb) # 复制页面ws = newb.get_sheet(0) # 取第一个sheetws.write(6, 6, "test")newb.save(filename) # 保存文件#支持03版到13版,保存的格式目前只支持03版本的xls格式,07以后的版本xlsx不支持