python 解析数据后保存到excel

openpyxl

  • 特点

    • 支持读写Excel 2010 xlsx/xlsm/xltx/xltm文件格式。
    • 可以操作Excel的几乎所有功能,如样式、图表、图片等。
    • 适用于复杂的Excel操作,例如公式、数据验证和条件格式。
    • 社区支持较好,文档比较完善。
  • 优点

    • 功能全面,能够处理复杂的Excel文件。
    • 可以读取和修改现有的Excel文件。
    • 支持较新的Excel特性。
  • 缺点

    • 内存消耗较大,对于非常大的Excel文件可能不太适用。
    • 读写速度相对较慢。
bash 复制代码
import os
import openpyxl

# 获取当前工作目录
current_work_directory = os.getcwd()

# 指定 Excel 文件路径
excel_file_path = os.path.join(current_work_directory, 'test.xlsx')

# 加载已存在的工作簿
workbook = openpyxl.load_workbook(excel_file_path)

# 选择默认的工作表,或者通过名字获取特定的工作表
sheet = workbook.active

# 假设这是你要写入的数据,可以是任何你处理后的数据
data_to_write = [
    ['标题1', '标题2', '标题3'],
    [1, 2, 3],
    [4, 5, 6],
    # ... 更多数据
]

# 写入数据到工作表
for row_index, row_data in enumerate(data_to_write, start=1):  # 从第一行开始写入
    for col_index, value in enumerate(row_data, start=1):
        sheet.cell(row=row_index, column=col_index, value=value)

# 保存工作簿
workbook.save(excel_file_path)

xlsxwriter

  • 特点

    • 只支持写入Excel 2010 xlsx/xlsm文件格式。
    • 专注于写操作,不支持读取Excel文件。
    • 适合快速创建和写入大型Excel文件。
  • 优点

    • 写入速度快,对于大量数据写入效率较高。
    • 内存占用小,适合处理大型数据集。
    • 生成的Excel文件较小。
  • 缺点

    • 功能相对有限,不支持读取或修改现有Excel文件。
    • 不支持某些复杂的Excel特性,如条件格式和数据验证。
bash 复制代码
import os
import xlsxwriter

# 获取当前工作目录
current_work_directory = os.getcwd()
# 指定 Excel 文件路径
excel_file_path = os.path.join(current_work_directory, 'test.xlsx')
# 创建一个新的工作簿
workbook = xlsxwriter.Workbook(excel_file_path)
# 创建一个新的工作表
worksheet = workbook.add_worksheet('Sheet')

# 设置标题行
titles = ["列名1", "列名2", "列名3", "列名4"]
for col_num, title in enumerate(titles, start=1):
    worksheet.write(0, col_num - 1, title)

# 修改单元格值
worksheet.write(1, 1, 1)

# 保存工作簿到当前工作目录
workbook.close()

总结

  • 如果你的需求是读取和修改现有的Excel文件,或者需要使用复杂的Excel特性,openpyxl可能是更好的选择。
  • 如果你只需要创建新的Excel文件,并且关注写入速度和文件大小,xlsxwriter可能更适合你。

根据你的具体需求,你可以选择最合适的库。对于大多数简单的用例,xlsxwriter由于其写入速度快和资源消耗低,通常是一个较好的选择。而对于需要更复杂操作的用例,openpyxl提供了更多的灵活性。

使用pandas保存到Excel文件

Pandas导入导出excel、csv、txt文件

bash 复制代码
from pandas import DataFrame
l1 = [1,2,3,4]
l2 = [1,2,3,4]
df = DataFrame({'序号': l1, '值': l2})
df.to_excel('test.xlsx', sheet_name='sheet1', index=False)
相关推荐
韩曙亮22 分钟前
【人工智能】AI 人工智能 技术 学习路径分析 ① ( Python语言 -> 微积分 / 概率论 / 线性代数 -> 机器学习 )
人工智能·python·学习·数学·机器学习·ai·微积分
喵叔哟1 小时前
6.配置管理详解
后端·python·flask
曾经的三心草1 小时前
基于正倒排索引的Java文档搜索引擎3-实现Index类-实现搜索模块-实现DocSearcher类
java·python·搜索引擎
MOMO陌染2 小时前
Python 饼图入门:3 行代码展示数据占比
后端·python
vvoennvv2 小时前
【Python TensorFlow】 TCN-GRU时间序列卷积门控循环神经网络时序预测算法(附代码)
python·rnn·神经网络·机器学习·gru·tensorflow·tcn
自学互联网3 小时前
使用Python构建钢铁行业生产监控系统:从理论到实践
开发语言·python
无心水3 小时前
【Python实战进阶】7、Python条件与循环实战详解:从基础语法到高级技巧
android·java·python·python列表推导式·python条件语句·python循环语句·python实战案例
xwill*3 小时前
RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
人工智能·pytorch·python·深度学习
陈奕昆3 小时前
n8n实战营Day2课时2:Loop+Merge节点进阶·Excel批量校验实操
人工智能·python·excel·n8n
程序猿追3 小时前
PyTorch算子模板库技术解读:无缝衔接PyTorch模型与Ascend硬件的桥梁
人工智能·pytorch·python·深度学习·机器学习