xlwt基本操作
xlwt 简介
xlwt
是一个用于在Python中操作Excel文件的库。它允许用户创建、修改和写入Excel文件,支持设置单元格的格式、样式等。以下是一些关键的特性和信息:
-
创建和写入Excel文件:
xlwt
允许用户创建新的Excel文件并在其中写入数据。这对于生成报表、导出数据等任务非常有用。 -
支持设置单元格样式: 通过
xlwt
,用户可以设置单元格的字体、对齐方式、背景色等样式,以使生成的Excel文件更具可读性和美观性。 -
支持多种数据类型:
xlwt
支持多种数据类型,包括文本、数字、日期等,使用户能够以各种格式将数据写入Excel文件。 -
兼容性: 该库兼容 Excel 97-2003 文件格式(.xls),因此可以在较旧版本的Excel中使用。
-
使用简便:
xlwt
提供了简单而直观的接口,使得即使对于没有丰富编程经验的用户也能轻松上手。
简单示例
以下是一个简单的示例,演示如何使用 xlwt
创建一个Excel文件并写入数据:
import xlwt # 创建一个新的Excel文件和工作表 workbook = xlwt.Workbook() sheet = workbook.add_sheet('Sheet1') # 写入数据到单元格 sheet.write(0, 0, 'Hello') sheet.write(0, 1, 'World!') # 保存文件 workbook.save('example.xls')
二维列表数据写入Excel(一)
按行存储在list的数据写入Excel
import xlwt # 创建一个Workbook对象 workbook = xlwt.Workbook() # 添加一个Sheet并设置其名称 sheet = workbook.add_sheet('我的数据') # 定义列表数据 data = [ ['id', '姓名', '国家'], [1.0, '曹操', '魏国'], [2.0, '刘备', '蜀国'], [3.0, '孙权', '吴国'], [4.0, '荀彧', '魏国'], [5.0, '诸葛亮', '蜀国'], [6.0, '周瑜', '吴国'], [7.0, '曹仁', '魏国'], [8.0, '关羽', '蜀国'], [9.0, '吕蒙', '吴国'] ] # 写入数据到单元格 for i, row in enumerate(data): for j, value in enumerate(row): sheet.write(i, j, value,style) # 保存Workbook到文件 workbook.save('output.xlsx')
二维列表数据写入Excel(二)
按列存储在list的数据写入Excel
import xlwt # 创建一个Workbook对象 workbook = xlwt.Workbook() sheet2 = workbook.add_sheet('我的数据2') data=[ ['id', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0], ['姓名', '曹操', '刘备', '孙权', '荀彧', '诸葛亮', '周瑜', '曹仁', '关羽', '吕蒙'], ['国家', '魏国', '蜀国', '吴国', '魏国', '蜀国', '吴国', '魏国', '蜀国', '吴国']] # 写入数据到单元格 for i, row in enumerate(data): for j, value in enumerate(row): sheet2.write(j, i, value) # 保存Workbook到文件 workbook.save('output2.xlsx')
把pymysql获取的结果集写入Excel
获取查询的所有结果
results = cursor.fetchall()
获取所有列名
column_names = [i[0] for i in cursor.description]
写入数据到工作表中
for row_index, row in enumerate(results): for col_index, value in enumerate(row): # 判断数据类型是否为时间类型 if isinstance(value, datetime.datetime): value = value.strftime("%Y-%m-%d %H:%M:%S") sheet.write(row_index + 1, col_index, value)
完整代码
import pymysql # 导入pymysql库,用于连接MySQL数据库 import xlwt # 导入xlwt库,用于生成Excel文件 import datetime # 建立数据库连接 connection = pymysql.connect( host='localhost', # 数据库主机地址 user='root', # 数据库用户名 password='123456', # 数据库密码 database='caiwu' # 数据库名称 ) # 创建游标对象 cursor = connection.cursor() # 执行SQL查询 cursor.execute("SELECT * FROM report_品名 limit 10") # 获取所有结果 results = cursor.fetchall() print(results) # 获取列名(即各个字段名) column_names = [i[0] for i in cursor.description] # 创建Excel工作簿 workbook = xlwt.Workbook() # 创建工作表(即Excel中的sheet) sheet = workbook.add_sheet('Sheet1') # 写入列名到工作表中 for col_index, column_name in enumerate(column_names): sheet.write(0, col_index, column_name) # 写入数据到工作表中 for row_index, row in enumerate(results): for col_index, value in enumerate(row): # 判断数据类型是否为时间类型 if isinstance(value, datetime.datetime): value = value.strftime("%Y-%m-%d %H:%M:%S") sheet.write(row_index + 1, col_index, value) # 保存Excel文件 workbook.save('output.xls') # 关闭数据库连接 cursor.close() connection.close()