前言:
Python中,往excel写入数据通常使用openpyxl库。也可以使用pandas库。这里讲解如何通过openpyxl库操作excel。
安装openpyxl:
pip install openpyxl
简单的例子:
在Pycharm中新建一个WriteExcel.py文件,将以下代码复制进去并运行。
# -*- coding: utf-8 -*-
import openpyxl
wb=openpyxl.Workbook() #创建Workbook()对象
ws=wb.active #获取默认工作薄
#ws.create_sheet('sheet2') #创建一个名为sheet2的作薄(一般不用写默认会自动创建)
ws.append(["Hello", "World"])#往文件中写入数据
wb.save("Test.xlsx") #保存
生成的文件内容应该是这样的:
上面的例子只是实现了最简单创建文件和数据写入功能。每次重新执行时都会把文件覆盖。但这样是不符合我们的要求的。因为在开发过程中,数据不可能一次性全部写入,都是一行一行不断新增的。因此,需要使用追加的模式往excel文件中写入数据。
追加的方式写入数据:
把以下代码复制到WriteExcel.py文件中运行:
# -*- coding: utf-8 -*-
import openpyxl
#读取excel文件,获取workbook对象
wb=openpyxl.load_workbook("Test.xlsx")
sheet=wb['Sheet'] #通过名称获取工作薄
sheet.append(["Hello", "World"]) #插入一行数据
wb.save("Test.xlsx") #保存,传入原文件则在原文件上追加数据,也可以保存为新文
生成的excel文件应该是这样的:
使用追加模式往excel文件追加数据需要注意的是,追加的数据格式需要为数组,而且文件必须要存在,如果文件不存则会报错。因此在实际的应用中,需要先创建文件,然后判断文件是否存在,最后才是写入数据。
设置单元格颜色和大小:
将以下代码复制并运行
# -*- coding: utf-8 -*-
import openpyxl
from openpyxl.styles import PatternFill #设置单元样式需要使用styles
#读取excel文件,获取workbook对象
wb=openpyxl.load_workbook("Test.xlsx")
sheet=wb['Sheet'] #通过名称获取工作薄
sheet.append(["Hello", "World"]) #插入一行数据
#设置第一列的宽度
sheet.column_dimensions['A'].width = 20.0
# #设置第一行的高度
sheet.row_dimensions[1].height = 25.0
#设置(1,1)的单元格的颜色为8E236B, 填充方式用solid(纯色)
sheet.cell(1,1).fill=PatternFill(fill_type="solid",start_color="8E236B")
wb.save("Test.xlsx") #保存
效果: