首页 > 编程语言 >【Python教程】python如何把数据导出生成excel

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

时间:2024-11-13 21:20:01浏览次数:3  
标签:index wb item Python 写入 excel python ws response

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

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

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

python如何把数据导出生成excel

一、前言

在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()


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

标签:index,wb,item,Python,写入,excel,python,ws,response
From: https://blog.csdn.net/weixin_44299027/article/details/143752598

相关文章

  • Python——专栏:跳动的心跳(橘粉爱心)——完整代码
    运行展示完整代码importrandomfrommathimportsin,cos,pi,logfromtkinterimport*CANVAS_WIDTH=980#画布的宽CANVAS_HEIGHT=720#画布的高CANVAS_CENTER_X=CANVAS_WIDTH/2#画布中心的X轴坐标CANVAS_CENTER_Y=CANVAS_HEIGHT/2#画布中......
  • Python 面向对象编程
    一、面向对象编程1.1面向过程与面向对象在理解面向对象编程(OOP)之前,我们先要了解 面向过程(POP) 和 面向对象(OOP) 的区别。1.1.1面向过程(POP)-面向过程的编程思想将一个功能分解为一个一个小的步骤,我们通过完成一个一个的小的步骤来完成一个程序-这种编程方式,符合我们......
  • 【进阶系列】带你看懂python的面向对象编程#类 #对象 #继承 #封装 #多态
    进阶系列一、面向对象编程1.1面向过程与面向对象1.1.1面向过程pop:1.1.2面向对象oop:1.2类、对象1.2.1类的定义与实例化对象1.2.2访问属性/方法1.2.3对象与类的关系1.2.5⭐魔方——构造函数与析构函数1.2.6⭐类属性/方法与实例对象属性/方法与静态方法小练习1......
  • python用selenium打开浏览器后浏览器关闭---解决办法
    脚本成功打开浏览器后,代码执行完毕浏览器又关闭了,解决办法:1、检查代码,代码中没有写driver.quit()或driver.close()方法,也没有其它错误提示;2、检查版本号,浏览器版本号,驱动版本号,确认版本号没有问题;3、加代码:fromseleniumimportwebdriveroptions=webdriver.ChromeOptions()......
  • Python语法:循环语句,掌握程序运行的节奏
    引言在当今数字化飞速发展的时代,编程已经成为一项不可或缺的技能,而Python作为一门简洁、高效且应用广泛的编程语言,备受开发者青睐。循环语句是Python编程中的基础结构之一,它在数据处理、算法实现、自动化任务等众多场景中都发挥着至关重要的作用。无论是专业的软件开发人员......
  • more Layer Architecture in Python and postgreSQL17.0
    postgreSQLscript:createtableSchool--創建表(SchoolIdchar(5)NOTNULLPRIMARYKEY,SchoolNamevarchar(500)NOTNULLDEFAULT'',SchoolTelNovarchar(8)NULLDEFAULT'');model:#encoding:utf-8#版权所有20......
  • canny 算法 python实现, 双边滤波--自适应阈值改进--形态学操作
    #-*-coding:utf-8-*-importnumpyasnpimportcv2importosimportcsv#高斯滤波defsmooth(image,sigma=1.4,length=5):#Computegaussianfilterk=length//2gaussian=np.zeros([length,length])foriinrange(length):for......
  • Python中的面向对象编程,类,对象,封装,继承,多态
    一、面向对象编程1.面向过程和面向对象面向过程和面向对象都是一种编程方式,只不过再设计上有区别。面向过程C语言细分成每一个过程优点:简单直观、性能高效、代码简洁。缺点:不易维护、不易扩展、代码重用性低。面向对象python、java、C++要使用某个功能,直接找到对应的......
  • 真题练习6-Excel电子表格-全国计算机等级考试二级MS Office高级应用与设计考试【汪老
    视频解析真题练习6-Excel电子表格_哔哩哔哩_bilibili题库下载全国计算机等级考试题库下载(用电脑下载安装):请点击题目要求某公司销售部门主管大华拟对本公司产品前两季度的销售情况进行统计,按下述要求帮助大华完成统计工作:1.在考生文件夹下,将“Excel素材.xlsx”文件另存为“......
  • python毕设网上商城系统的设计与实现程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于网上商城系统的研究,现有研究多以大型商业平台为对象,以特定框架如SSM框架下的Java实现为主,而专门针对Python实现的网上商城系统研......