每日小结/第十三周总结

将图片扫面并转化为excel文件

from django.shortcuts import render,HttpResponse,redirect
from django.http import HttpResponse
import os
import cv2
import pandas as pd
from PIL import Image
import pytesseract
import io
import openpyxl
tesseract_cmd = r'D:\develop\Tesseract\tesseract'
pytesseract.pytesseract.tesseract_cmd =tesseract_cmd

#导入 views



# Create your views here.

def team_index(request):
if request.method == 'POST' and request.FILES['image']:
# 接收上传的图片文件
image_file = request.FILES['image']

# 读取图片并识别文字
image = Image.open(image_file)
text = pytesseract.image_to_string(image, lang='eng')

# 将识别出来的文字存为Excel文件
output = io.BytesIO()
writer = pd.ExcelWriter(output, engine='openpyxl')
df = pd.DataFrame({'Text': [text]})
df.to_excel(writer, sheet_name='Sheet1', index=False)
writer._save()
output.seek(0)

# 返回Excel文件给用户下载
response = HttpResponse(output.getvalue(), content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename=over.xlsx'
return response

return render(request, 'index.html')

  1. 用户通过表单上传图片文件。
  2. 代码接收上传的图片文件。
  3. 使用 PIL 库的 Image.open() 方法打开图片文件。
  4. 使用 pytesseract 库对图片进行文字识别,将识别结果保存在变量 text 中。
  5. 创建一个 BytesIO 对象 output,用于将 DataFrame 存储为字节。
  6. 使用 pd.ExcelWriter() 方法创建一个 ExcelWriter 对象 writer,指定引擎为 'openpyxl'
  7. 创建一个 DataFrame df,其中包含一个列 'Text',值为识别出的文字内容。
  8. 使用 df.to_excel() 方法将 DataFrame 写入 Excel 文件,指定 sheet 名称为 'Sheet1',并禁用索引列。
  9. 使用 writer.save() 方法保存 Excel 文件。
  10. output 的指针移动到文件的起始位置,以便读取文件内容。
  11. 创建一个 HttpResponse 对象 response,将 Excel 文件内容作为响应的内容。
  12. 设置响应的内容类型为 'application/vnd.ms-excel',指定下载的文件名为 'over.xlsx'
  13. 返回响应对象给用户,浏览器将开始下载 Excel 文件。

因此,当用户上传图片后,服务器会对图片进行文字识别并将结果保存为 Excel 文件,最后将该 Excel 文件返回给用户进行下载。

posted @   小旺财  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示