【Python教程】python如何把数据导出生成excel

博主介绍:✌全网粉丝21W+,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌

技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物联网、机器学习等设计与开发。

感兴趣的可以先关注收藏起来,在工作中、生活上等遇到相关问题都可以给我留言咨询,希望帮助更多的人。

一、前言

在Python中,将数据导出生成Excel文件,最常用的库之一是openpyxl(用于处理.xlsx文件)和pandas(提供了更高级的数据处理功能,并且可以很方便地将DataFrame导出到Excel)。以下将分别介绍如何使用这两个库来生成Excel文件。

二、使用openpyxl生成Excel文件

如果你只想使用openpyxl来生成Excel文件,你可以手动创建工作簿、工作表,并写入数据。

from openpyxl import Workbook  
  
# 创建一个工作簿  
wb = Workbook()  
  
# 激活工作表  
ws = wb.active  
  
# 更改工作表的标题  
ws.title = "Demo Sheet"  
  
# 写入数据  
ws.append([1, 2, 3])  # 写入一行数据,这将占居第一行  
ws['A2'] = 'Hello'  # 直接指定单元格写入数据  
ws.cell(row=3, column=2, value="World")  # 通过行号和列号写入数据
  
# 保存工作簿  
wb.save("demo.xlsx")

运行上述代码即可得到一个excel文件。

二、使用pandas生成Excel文件

如果你的数据已经是pandas DataFrame的形式,那么将数据导出到Excel会非常简单。

import pandas as pd  
  
# 创建一个DataFrame  
data = {  
    'Name': ['Jack', 'Rose', 'Benjamin', 'Wyslin'],  
    'Age': [36, 33, 27, 46],  
    'City': ['New York', 'Washinton', 'Paris', 'London']  
}  
df = pd.DataFrame(data)  
  
# 将DataFrame导出到Excel文件  
df.to_excel("output.xlsx", index=False)  # index=False表示不导出行索引

在这个例子中,我们首先创建了一个包含人名、年龄和城市的DataFrame。然后,我们使用to_excel方法将其导出到名为output.xlsx的Excel文件中,并通过设置index=False来避免导出DataFrame的行索引。

pandas的to_excel方法非常强大,它支持多种自定义选项,比如指定工作表名称、设置列宽、应用样式等。你可以查阅pandas的官方文档来了解更多高级功能。

三、实际使用示例

import requests
import json
from openpyxl import Workbook

def run():
    export_adss_message_data()
#

# 导出设备数据
def export_adss_device_data2():
    url = "https://127.0.0.1:50000/api/pis/device/page"
    
    # 总公司 70
    querystring = {"orgId": 70, "page": "1", "limit": "200"}
    headers = {"authorization": "eyJhbGciOiJIUzUxMiJ9.eyJsb2d5MG.6IR81-cE8MPSbCBxhS_WBcg"}
    response = requests.request("GET", url, headers=headers, params=querystring, verify=False)
    # 创建一个工作簿
    wb = Workbook()
    # 激活工作表
    ws = wb.active
    # 更改工作表的标题
    ws.title = "Example Sheet"
    # 写入数据
    ws.append(['*设备编号', '*设备名称', '*组织名称'])  # 写入一行数据

    # 将JSON字符串转换为Python字典
    response_dict = json.loads(response.text)
    index = 2
    for item in response_dict['data']['list']:
        ws['A' + str(index)] = item['deviceNum']  # 直接指定单元格写入数据
        ws['B' + str(index)] = item['deviceName']  # 直接指定单元格写入数据
        ws['C' + str(index)] = item['orgName']  # 直接指定单元格写入数据
        index += 1

    # 保存工作簿
    wb.save("重新导出1.xlsx")
    print("结束")

# 导出设备数据
def export_device_data():
    url = "https://127.0.0.1:50000/api/pis/device/page"
	# 分公司 41
    querystring = {"orgId": 41, "page": "1", "limit": "200"}
    headers = {"authorization": "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl9J9.n0fIyaT78_NNRNucC7eJgkS9D_7D0ZUeg"}
    response = requests.request("GET", url, headers=headers, params=querystring, verify=False)
    # 创建一个工作簿
    wb = Workbook()
    # 激活工作表
    ws = wb.active
    # 更改工作表的标题
    ws.title = "Example Sheet"
    # 写入数据
    ws.append(['组织ID', '组织名称', '规则名称', '设备名称', '备注'])  # 写入一行数据

    # 将JSON字符串转换为Python字典
    response_dict = json.loads(response.text)
    index = 2
    for item in response_dict['data']['list']:
        ws['A' + str(index)] = item['orgId']  # 直接指定单元格写入数据
        ws['B' + str(index)] = item['orgName']  # 直接指定单元格写入数据
        ws['C' + str(index)] = item['ruleName']  # 直接指定单元格写入数据
        ws['D' + str(index)] = item['deviceName']  # 直接指定单元格写入数据
        ws['E' + str(index)] = item['remark']  # 直接指定单元格写入数据
        index += 1

    # 保存工作簿
    wb.save("分公司.xlsx")
    print("结束")

def export_adss_message_data():
    url = "https://127.0.0.1:50000/api/pis/message/page"
    # 只适合一个设备一个设备导出
    strname = "910031200184"
    set1 = {strname}
    # 设置请求头,确保包含有效的授权令牌
    headers = {"Authorization": "eyJhbGciOiJIUzUxMiJ9.eyJMiJ9.DQc0fErP_iqcEXtfmknzE-mnChvHVKby0kA"}
    # 创建一个字典来存储每个 machineNum 对应的 dataByte 值
    data_dict = {}
    for machineNum in set1:
        querystring = {"machineNum": machineNum, "page": "1", "limit": "10000", "createTimeStart": "2024-11-09+00:00:00", "createTimeEnd": "2024-11-12+23:59:59"}
        response = requests.get(url, headers=headers, params=querystring, verify=False)
        # 检查响应状态码
        if response.status_code == 200:
            # 创建一个工作簿
            wb = Workbook()
            # 激活工作表
            ws = wb.active
            # 更改工作表的标题
            ws.title = "Example Sheet"
            # 将JSON字符串转换为Python字典
            response_dict = json.loads(response.text)
            # 写入数据
            ws.append(['采集时间', '原始字节'])  # 写入一行数据
            index = 2
            for item in response_dict['data']['list']:
                if item.get('dataByte') is not None:
                    ws.cell(row=index, column=1, value=item['messageTime'])  # 通过行号和列号写入数据
                    ws.cell(row=index, column=2, value=item['dataByte'])  # 通过行号和列号写入数据
                    index += 1
            # 保存工作簿
            wb.save("ass-" + machineNum + ".xlsx")
    print("结束")
    return data_dict

if __name__ == "__main__":
    run()


好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 “点赞” 和 “关注” 哦,我们下次见!🎈

本文完结!

祝各位大佬和小伙伴身体健康,万事如意,发财暴富,扫下方二维码与我一起交流!!!在这里插入图片描述

有多种方法可以把Python中print的值导出Excel中,其中一种常用的方法是使用pandas库,以下是一个简单的示例代码: ``` import pandas as pd # 创建一个数据框 df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}) # 将数据导出Excel df.to_excel('output.xlsx', index=False) ``` 在上面的代码中,首先我们创建了一个数据框df,然后使用to_excel方法将数据导出到名为output.xlsx的Excel文件中。其中,参数index=False表示不要将行索引导出Excel中。 如果你想将print语句的输出直接写入到Excel文件中,可以使用Python的csv模块或openpyxl模块来写入。以下是一个使用csv模块的示例代码: ``` import csv # 打开CSV文件 with open('output.csv', 'w', newline='') as file: writer = csv.writer(file) # 写入表头 writer.writerow(['Name', 'Age']) # 写入数据行 writer.writerow(['Alice', 25]) writer.writerow(['Bob', 30]) ``` 在上面的代码中,我们使用with语句打开名为output.csv的CSV文件,并创建一个csv.writer对象。然后,我们使用writerow方法将表头和数据行写入到CSV文件中。注意,参数newline=''表示不要在行之间插入额外的空行。 如果你想使用openpyxl模块将print语句的输出写入到Excel文件中,可以使用以下示例代码: ``` from openpyxl import Workbook # 创建一个工作簿对象 wb = Workbook() # 获取默认的工作表 ws = wb.active # 写入表头 ws.append(['Name', 'Age']) # 写入数据行 ws.append(['Alice', 25]) ws.append(['Bob', 30]) # 保存工作簿到Excel文件中 wb.save('output.xlsx') ``` 在上面的代码中,我们首先创建了一个工作簿对象wb,并获取了默认的工作表ws。然后,我们使用ws.append方法将表头和数据行写入到工作表中。最后,我们使用wb.save方法将工作簿保存到名为output.xlsx的Excel文件中。
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

No8g攻城狮

向每一个努力改变现状的你致敬!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值