写入数据到excel表格中,需要先import xlwt库,pip install xlwt安装。
1.直接写入数据到excel中
def write_file():
book = xlwt.Workbook(encoding='utf-8') #创建Workbook,相当于创建Excel
# 创建sheet,Sheet1为表的名字,cell_overwrite_ok为是否覆盖单元格
sheet1 = book.add_sheet(u'Sheet1', cell_overwrite_ok=True)
#向表中添加数据
sheet1.write(0, 0, 'Englishname') #第0行第0列
sheet1.write(1, 0, 'Hellen') #第一行第0列
sheet1.write(0, 1, '中文名字')
sheet1.write(1, 1, '海伦')
excel中写入的数据:
2.写入字典类型的数据
def write_file():
book = xlwt.Workbook(encoding='utf-8') #创建Workbook,相当于创建Excel
# 创建sheet,Sheet1为表的名字,cell_overwrite_ok为是否覆盖单元格
sheet1 = book.add_sheet(u'Sheet1', cell_overwrite_ok=True)
data = {
"序号": ["姓名", "语文", "数学", "英语"],
"1": ["张三", 130, 120, 100],
"2": ["李四", 100, 110, 120],
"3": ["王五", 125, 135, 135]
}
r = 0
for i, j in data.items(): # i表示data中的key,j表示data中的value
le = len(j) # values返回的列表长度
if r == 0:
sheet1.write(r, 0, i, set_style('Arial', 220, True)) #添加第 0 行 0 列数据单元格背景设为黄色
else:
sheet1.write(r, 0, i, ) # 添加第 1 列的数据
for c in range(1, le + 1): #values列表中索引
if r == 0:
sheet1.write(r, c, j[c - 1], set_style('Arial', 220, True)) #添加第 0 行,2 列到第 5 列的数据单元格背景设为黄色
else:
sheet1.write(r, c, j[c - 1])
r += 1 # 行数
#sheet_merge() 合并单元格
book.save('D:\\write.xlsx')
excel中写入的数据:
3.设置字体样式、单元格样式
1)设置之前,需要先初始化样式
style = xlwt.XFStyle() #初始化样式
2)设置字体大小、颜色
font = xlwt.Font() #创建字体, Font定义字体的大小、颜色
font.name = name #字体名称
font.bold = bold #粗体
# font.italic = True #斜体
font.height = height #字体大小
# font.colour_index = 4 # 字体颜色
3)设置单元格边框线
borders = xlwt.Borders() #单元格边框线
borders.left = xlwt.Borders.THIN #设置边框线粗细
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
# borders.right_colour = 1 #设置边框线颜色
# borders.left_colour = 1
# borders.top_colour = 1
# borders.bottom_colour = 1
4)设置字体在单元格中的位置
alignment = xlwt.Alignment() #设置字体在单元格中的位置
alignment.horz = xlwt.Alignment.HORZ_CENTER #水平居左
alignment.vert = xlwt.Alignment.VERT_CENTER #垂直居中
5)设置单元格背景颜色
pat = xlwt.Pattern() #设置单元格背景颜色
pat.pattern = xlwt.Pattern.SOLID_PATTERN
pat.pattern_fore_colour = 5 #黄色
6)设置完后,需要重新赋值:
style.font = font
style.borders = borders
style.alignment = alignment
style.pattern = pat
XFStyle类中,创建了对应的样式的对象,如下:
7)在write_file()中,调用设置方法如下:
sheet1.write(r, 0, i, set_style('Arial', 220, True)) #添加第 0 行 0 列数据单元格背景设为黄色
r 为行,0 为第0 列,i为添加的数据,set_style为对字体和单元格的设置。
4.完整的代码如下:
import xlwt
def write_file():
book = xlwt.Workbook(encoding='utf-8') #创建Workbook,相当于创建Excel
# 创建sheet,Sheet1为表的名字,cell_overwrite_ok为是否覆盖单元格
sheet1 = book.add_sheet(u'Sheet1', cell_overwrite_ok=True)
# #向表中添加数据
# sheet1.write(0, 0, 'Englishname')
# sheet1.write(1, 0, 'Hellen')
# sheet1.write(0, 1, '中文名字')
# sheet1.write(1, 1, '海伦')
data = {
"序号": ["姓名", "语文", "数学", "英语"],
"1": ["张三", 130, 120, 100],
"2": ["李四", 100, 110, 120],
"3": ["王五", 125, 135, 135]
}
r = 0
for i, j in data.items(): # i表示data中的key,j表示data中的value
le = len(j) # values返回的列表长度
if r == 0:
sheet1.write(r, 0, i, set_style('Arial', 220, True)) #添加第 0 行 0 列数据单元格背景设为黄色
else:
sheet1.write(r, 0, i, ) # 添加第 1 列的数据
for c in range(1, le + 1): #values列表中索引
if r == 0:
sheet1.write(r, c, j[c - 1], set_style('Arial', 220, True)) #添加第 0 行,2 列到第 5 列的数据单元格背景设为黄色
else:
sheet1.write(r, c, j[c - 1])
r += 1 # 行数
#sheet_merge() 合并单元格
book.save('D:\\write.xlsx')
def set_style(name, height, bold = False):
style = xlwt.XFStyle() #初始化样式
font = xlwt.Font() #创建字体, Font定义字体的大小、颜色
font.name = name #字体名称
font.bold = bold #粗体
# font.italic = True #斜体
font.height = height #字体大小
# font.colour_index = 4 # 字体颜色
borders = xlwt.Borders() #单元格边框线
borders.left = xlwt.Borders.THIN #设置边框线粗细
borders.right = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
# borders.right_colour = 1 #设置边框线颜色
# borders.left_colour = 1
# borders.top_colour = 1
# borders.bottom_colour = 1
alignment = xlwt.Alignment() #设置字体在单元格中的位置
alignment.horz = xlwt.Alignment.HORZ_CENTER #水平居左
alignment.vert = xlwt.Alignment.VERT_CENTER #垂直居中
pat = xlwt.Pattern() #设置单元格背景颜色
pat.pattern = xlwt.Pattern.SOLID_PATTERN
pat.pattern_fore_colour = 5 #黄色
style.font = font
style.borders = borders
style.alignment = alignment
style.pattern = pat
return style
if __name__ == '__main__':
write_file()