openpyxl基本操作
openpyxl 简介
openpyxl
是一个用于读取和写入Excel文件的Python库。它提供了强大的功能,允许用户操作Excel文件,包括创建新文件、读取现有文件、修改文件内容以及设置单元格的格式和样式。以下是一些关键的特性和信息:
-
创建和修改Excel文件:
openpyxl
允许用户创建新的Excel文件,并可以在已有文件上进行修改。这对于自动化生成报表、数据处理等任务非常有用。 -
支持Excel文件格式:
openpyxl
主要支持 Excel 2010 及更高版本的 .xlsx 文件格式,是一种现代的、基于 XML 的文件格式。 -
强大的功能: 该库提供了许多功能,如处理图表、图像、公式等,使得用户能够更全面地操作Excel文件。
-
支持样式和格式设置: 用户可以使用
openpyxl
设置单元格的字体、对齐方式、背景色等样式,以及设置列宽、行高等格式。 -
易于使用:
openpyxl
提供了直观的API,容易上手,同时也有丰富的文档和社区支持。
简单示例
如何使用 openpyxl
创建一个Excel文件并写入数据:
from openpyxl import Workbook # 创建一个新的Excel文件 workbook = Workbook() sheet = workbook.active # 写入数据到单元格 sheet['A1'] = 'Hello' sheet['B1'] = 'World!' # 保存文件 workbook.save('example.xlsx')
二维列表数据写入Excel(一)
按行存储在list的数据写入Excel
from openpyxl import Workbook # 创建一个工作簿 wb = Workbook() ws = wb.active # 定义列表数据 data = [ ['id', '姓名', '国家'], [1.0, '曹操', '魏国'], [2.0, '刘备', '蜀国'], [3.0, '孙权', '吴国'], [4.0, '荀彧', '魏国'], [5.0, '诸葛亮', '蜀国'], [6.0, '周瑜', '吴国'], [7.0, '曹仁', '魏国'], [8.0, '关羽', '蜀国'], [9.0, '吕蒙', '吴国'] ] # 将数据写入工作表 for row in data: ws.append(row) # 保存工作簿到Excel文件 wb.save('output.xlsx')
二维列表数据写入Excel(二)
按列存储在list的数据写入Excel
from openpyxl import Workbook
# 创建一个工作簿 workbook = Workbook() sheet = workbook.active data = [ ['id', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], ['姓名', '曹操', '刘备', '孙权', '荀彧', '诸葛亮', '周瑜', '曹仁', '关羽', '吕蒙'], ['国家', '魏国', '蜀国', '吴国', '魏国', '蜀国', '吴国', '魏国', '蜀国', '吴国'] ] # 将数据按列写入工作表 for col in zip(*data): sheet.append(col) # 保存工作簿到Excel文件 workbook.save('output_column.xlsx')
把pymysql获取的结果集写入Excel
获取列名
# 获取列名(即各个字段名) column_names = [i[0] for i in cursor.description]
写入列名到工作表中
# 写入列名到工作表中 for col_index, column_name in enumerate(column_names): sheet.cell(row=1, column=col_index+1).value = column_name
写入数据到工作表中
row_index = 2 for row in cursor: for col_index, value in enumerate(row): sheet.cell(row=row_index, column=col_index+1).value = value row_index += 1
完整代码
import openpyxl import pymysql # 建立数据库连接 connection = pymysql.connect( host='localhost', user='root', password='123456', database='caiwu' ) # 创建工作簿对象 workbook = openpyxl.Workbook() # 创建工作表对象 sheet = workbook.active # 编写SQL查询语句 query = "SELECT * FROM report_品名" # 创建游标对象 cursor = connection.cursor() # 执行SQL查询 cursor.execute(query) # 获取列名(即各个字段名) column_names = [i[0] for i in cursor.description] # 写入列名到工作表中 for col_index, column_name in enumerate(column_names): sheet.cell(row=1, column=col_index+1).value = column_name # 写入数据到工作表中 row_index = 2 for row in cursor: for col_index, value in enumerate(row): sheet.cell(row=row_index, column=col_index+1).value = value row_index += 1 # 关闭游标对象 cursor.close() # 关闭数据库连接 connection.close() # 保存Excel文件 workbook.save('output.xlsx')