(一)xlwt完整示例
# 0.导入xlst模块
import xlwt
# 1.创建 Workbook
wb = xlwt.Workbook()
# 2.创建 worksheet
ws = 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 xlwt
import xlrd
from xlutils.copy import copy
wb = 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) # 取第一个sheet
ws.write(6, 6, "test")
newb.save(filename) # 保存文件
#支持03版到13版,保存的格式目前只支持03版本的xls格式,07以后的版本xlsx不支持
(三)自主选择excel的存储位置
import tkinter.filedialog
import numpy as np
import xlwt
import xlrd
from xlutils.copy import copy
wb = 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)
注:如果不加以下两行代码:
root = tkinter.Tk() # 创建一个Tkinter.Tk()实例
root.withdraw() # 将Tkinter.Tk()实例隐藏
程序运行后会出现一个小框:

(四)表格样式速查
xlrd和xlwt模块的小栗子 - https://www.cnblogs.com/xiao-apple36/p/9603499.html
python xlwt 设置单元格样式 ——https://www.jianshu.com/p/0f0cfffc949b
xlwt.Borders()Example ——https://www.programcreek.com/python/example/60028/xlwt.Borders
xlwt easyxf()能理解的颜色预览——https://blog.csdn.net/haowells/article/details/37928175
xlwt设置列宽、行高——https://blog.csdn.net/weixin_42122355/article/details/83536142
Widths & Heights with xlwt ——http://reliablybroken.com/b/2011/10/widths-heights-with-xlwt-python/
(五)+样式示例代码(注释版)

import xlwt
import xlrd
from datetime import datetime, date
from xlutils.copy import copy
def 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 = height
borders = xlwt.Borders() # 创建边框
borders.left = 2
borders.right = 2
borders.top = 2
borders.bottom = 2
#细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7
#大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13
al = 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 style
style.borders = borders # Add borders to style
style.num_format_str = format_str #数据类型
return style
wb = 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) # 取第一个sheet
ws.write(6, 6, "test")
newb.save(filename) # 保存文件
#支持03版到13版,保存的格式目前只支持03版本的xls格式,07以后的版本xlsx不支持
这篇教程详细介绍了如何使用Python的xlwt, xlrd和xlutils库进行Excel文件的操作,包括新建、打开并增添新数据,以及如何选择Excel的保存位置。还提供了丰富的样式设置参考资料链接。"
133479380,19673501,CSS派生选择器详解与实战应用,"['CSS', '前端开发', '编程技巧']

1万+

被折叠的 条评论
为什么被折叠?



