• 利用Python提取将Excel/PDF文件数据


    使用Python来创建一个接口,用于接收Excel文件资源链接,下载文件并执行指定的操作,然后返回处理后的数据。以下是一个基本的示例,展示如何使用Flask来创建这样的接口。请注意,这是一个简化的示例,您可能需要根据实际需求扩展和完善代码。

    首先,确保安装Flask

    pip install Flask
    

    然后,创建一个Python脚本,比如excel_api.py

    1. import os
    2. from flask import Flask, request, jsonify
    3. import requests
    4. import openpyxl
    5. app = Flask(__name)
    6. @app.route("/process_excel", methods=["POST"])
    7. def process_excel():
    8. try:
    9. # 获取POST请求中的JSON数据
    10. data = request.get_json()
    11. # 从JSON数据中获取Excel文件链接
    12. excel_url = data.get("excel_url")
    13. # 下载Excel文件
    14. excel_response = requests.get(excel_url)
    15. with open("temp.xlsx", "wb") as f:
    16. f.write(excel_response.content)
    17. # 打开Excel文件
    18. wb = openpyxl.load_workbook("temp.xlsx")
    19. # 用于存储处理后的数据
    20. processed_data = {}
    21. # 处理每个sheet
    22. for sheet_name in wb.sheetnames:
    23. sheet = wb[sheet_name]
    24. sheet_data = []
    25. # 读取每个单元格的数据
    26. for row in sheet.iter_rows(values_only=True):
    27. sheet_data.append(row)
    28. processed_data[sheet_name] = sheet_data
    29. # 处理完成后,可以根据需要将数据存储到指定路径
    30. # 返回处理后的数据
    31. return jsonify(processed_data)
    32. except Exception as e:
    33. return jsonify({"error": str(e)})
    34. if __name__ == "__main__":
    35. app.run(debug=True)

    提取各sheet内单元格(部分为合并单元格)内字段数据

    1. import openpyxl
    2. def extract_data_from_sheet(sheet):
    3. data = []
    4. for row in sheet.iter_rows(values_only=True):
    5. row_data = []
    6. for cell in row:
    7. if cell.data_type == 's': # 处理合并单元格
    8. value = sheet.cell(row=cell.row, column=cell.column)._value
    9. else:
    10. value = cell.value
    11. row_data.append(value)
    12. data.append(row_data)
    13. return data
    14. # 打开Excel文件
    15. wb = openpyxl.load_workbook("your_excel_file.xlsx")
    16. # 处理每个sheet
    17. for sheet_name in wb.sheetnames:
    18. sheet = wb[sheet_name]
    19. sheet_data = extract_data_from_sheet(sheet)
    20. # 在这里,sheet_data 包含了从当前sheet中提取的数据
    21. print(f"Data from {sheet_name}:")
    22. for row in sheet_data:
    23. print(row)

  • 相关阅读:
    Docker安装MySQL8.0报错记录
    C++ 小游戏 视频及资料集(9)
    SAP-MM/QM 移动原因维护
    前端也学一下 Lua 呀
    UML学习笔记
    堆叠、集群技术
    Git 作用&&操作
    分享一下微信投票小游戏怎么做
    介绍 Django 的模型字段 DecimalField
    交互设计之五要素
  • 原文地址:https://blog.csdn.net/qq_33587050/article/details/133833768