当前位置: 首页 > news >正文

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

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

首先,确保安装Flask:

pip install Flask

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

import os
from flask import Flask, request, jsonify
import requests
import openpyxlapp = Flask(__name)@app.route("/process_excel", methods=["POST"])
def process_excel():try:# 获取POST请求中的JSON数据data = request.get_json()# 从JSON数据中获取Excel文件链接excel_url = data.get("excel_url")# 下载Excel文件excel_response = requests.get(excel_url)with open("temp.xlsx", "wb") as f:f.write(excel_response.content)# 打开Excel文件wb = openpyxl.load_workbook("temp.xlsx")# 用于存储处理后的数据processed_data = {}# 处理每个sheetfor sheet_name in wb.sheetnames:sheet = wb[sheet_name]sheet_data = []# 读取每个单元格的数据for row in sheet.iter_rows(values_only=True):sheet_data.append(row)processed_data[sheet_name] = sheet_data# 处理完成后,可以根据需要将数据存储到指定路径# 返回处理后的数据return jsonify(processed_data)except Exception as e:return jsonify({"error": str(e)})if __name__ == "__main__":app.run(debug=True)

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

import openpyxldef extract_data_from_sheet(sheet):data = []for row in sheet.iter_rows(values_only=True):row_data = []for cell in row:if cell.data_type == 's':  # 处理合并单元格value = sheet.cell(row=cell.row, column=cell.column)._valueelse:value = cell.valuerow_data.append(value)data.append(row_data)return data# 打开Excel文件
wb = openpyxl.load_workbook("your_excel_file.xlsx")# 处理每个sheet
for sheet_name in wb.sheetnames:sheet = wb[sheet_name]sheet_data = extract_data_from_sheet(sheet)# 在这里,sheet_data 包含了从当前sheet中提取的数据print(f"Data from {sheet_name}:")for row in sheet_data:print(row)

http://www.lryc.cn/news/192797.html

相关文章:

  • 纯 CSS 实现瀑布流布局的方法
  • 输入法显示到语言栏_状态栏
  • [samba]同一个文件夹,分不同权限管理
  • 项目整合管理
  • 基于RuoYi-Flowable-Plus的若依ruoyi-nbcio支持本地图片上传与回显的功能实现(一)
  • 2023年建筑电工(建筑特殊工种)证考试题库及建筑电工(建筑特殊工种)试题解析
  • Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)
  • ArduPilot开源飞控之AP_InertialNav
  • DataX工具部署与使用(PostgreSQL to Oracle)
  • 【PyTorch2 之027】在 PyTorch 中的R-CNN、Fast R-CNN和 Faster R-CNN
  • C++学习——C++函数的编译、成员函数的调用、this指针详解
  • Pulsar Manager和dashboard部署和启用认证
  • K8S环境搭建
  • 常用的软件项目管理工具一览
  • 关于网络协议的若干问题(五)
  • TensorFlow入门(十七、神经元的拟合原理)
  • VSCODE配置C和C++
  • 位于同一子网下的ip在子网掩码配置错误的情况下如何进行通信(wireshrak抓包分析)
  • Dockerfile镜像实战
  • 企业如何选择安全又稳定的文件传输协议
  • Linux Kernel 4.13 RC6发布:正式版9月3日发布
  • C++学习——C++中const的新花样
  • 【Linux环境搭建】五、Linux(CentOS7)编译源码安装Subversion
  • 微信小程序入门讲解【超详细】
  • AtCoder ABC239G 最小割集
  • Simple RPC - 01 框架原理及总体架构初探
  • VScode运行C/C++
  • #智能车项目(三)串口初始化
  • 网络通信错误代码列表 HTTP 、FTP
  • 最新开源ThinkPHP6框架云梦卡社区系统源码/亲测可用(全新开发)