python之生成excel

本文介绍了一种从MySQL数据库中提取数据并将其导出到Excel文件的方法。使用Python的MySQLdb模块连接数据库并执行查询,然后利用xlwt库将查询结果写入Excel。文章提供了一个完整的示例代码,展示了如何定义查询语句、执行查询并将结果保存到Excel文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#_*_coding:utf-8_*_

import MySQLdb
import xlwt
from datetime import datetime

def get_data(sql):

    # 创建数据库连接.
    conn = MySQLdb.connect(host='127.0.0.1',user='root' ,passwd='123456',db='test',port=3306,charset='utf8')
    # 创建游标
    cur = conn.cursor()
    # 执行查询,
    cur.execute(sql)
    # 由于查询语句仅会返回受影响的记录条数并不会返回数据库中实际的值,所以此处需要fetchall()来获取所有内容。
    result = cur.fetchall()
    #关闭游标
    cur.close()
    #关闭数据库连接
    conn.close
    # 返给结果给函数调用者。
    return result    
    
def write_data_to_excel(name,sql):

    # 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)
    result = get_data(sql)
    # 实例化一个Workbook()对象(即excel文件)
    wbk = xlwt.Workbook()
    # 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。
    sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True)
    # 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)
    today = datetime.today()
    # 将获取到的datetime对象仅取日期如:2016-8-9
    today_date = datetime.date(today)
    # 遍历result中的没个元素。
    for i in xrange(len(result)):
        #对result的每个子元素作遍历,
        for j in xrange(len(result[i])):
            #将每一行的每个元素按行号i,列号j,写入到excel中。
            sheet.write(i,j,result[i][j])
    # 以传递的name+当前日期作为excel名称保存。
    wbk.save(name+str(today_date)+'.xls')

# 如果该文件不是被import,则执行下面代码。
if __name__ == '__main__':
    #定义一个字典,key为对应的数据类型也用作excel命名,value为查询语句
    db_dict = {'test':'select * from student'}
    # 遍历字典每个元素的key和value。
    for k,v in db_dict.items():
        # 用字典的每个key和value调用write_data_to_excel函数。
        write_data_to_excel(k,v)

 

### 使用Python Pandas生成Excel表格 为了使用Pandas库创建Excel文件,首先需要安装`pandas`以及用于操作Excel文件的依赖包`openpyxl`或`xlsxwriter`。可以通过pip命令完成这些库的安装。 ```bash pip install pandas openpyxl ``` 下面是一个完整的例子展示如何利用给定的数据集构建并保存到一个新的Excel文件中: #### 创建DataFrame对象 通过定义一个字典来表示列名及其对应的数据列表,可以方便地初始化一个DataFrame实例[^3]。 ```python import pandas as pd # 导入pandas模块,并重命名为pd以便后续调用更简洁 data = { 'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [28, 24, 30] } df = pd.DataFrame(data) # 将字典转换成DataFrame结构 print(df) ``` 此段代码会打印出如下所示的内容: ``` ID Name Age 0 1 Alice 28 1 2 Bob 24 2 3 Charlie 30 ``` #### 写入Excel文件 一旦有了DataFrame对象之后,就可以很容易地将其写入Excel文件中。这里展示了两种不同的方式来控制是否包含索引和标题行[^1]。 ```python output_file = './example.xlsx' # 不带索引但保留表头的方式存储至指定路径下的Excel文档内 df.to_excel(output_file, sheet_name='Sheet1', index=False) # 如果希望不显示任何额外的信息(即既无索引也无表头),则可按以下方法执行 df.to_excel('no_header_index_example.xlsx', index=False, header=False) ``` 上述代码片段将会把名为`example.xlsx`的新Excel文件存放在当前目录下,默认情况下会在第一个工作表(`sheet`)里添加数据,并且可以选择性地省略掉默认自动生成的第一列作为行标签的部分。 对于更加复杂的场景,比如向已有的Excel文件追加新的记录或是调整单元格样式等问题,则可能涉及到更多高级功能的应用[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值