首页 > 其他分享 >每日小结

每日小结

时间:2023-05-22 19:57:48浏览次数:29  
标签:文件 excel 每日 writer Excel output 小结 image

将图片扫面并转化为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 文件返回给用户进行下载。

标签:文件,excel,每日,writer,Excel,output,小结,image
From: https://www.cnblogs.com/jingyk/p/17421554.html

相关文章

  • 2023/5/21每日随笔 调用chatgpt接口实现项目的基本需要
    首先,对于我要求的工作,gpt完美胜任,那么问题来了,怎么调用chatgpt,是可以免费调用的,但需要keyword,也就得进入chatgpt官网,就得用外网,但是要它的api应用到android上,外网手段就不可取了,于是,准备冲别人搭建的平台上调用,很幸运的是,在B站上还真的找到资源,up主也很好,教我一步一实现,搭建了以......
  • Cocos Creator开发中的instantiate方法小结
    简介instantiate方法在Cocos Creator中有两种作用:从Prefab实例化出新节点克隆指定的任意类型的对象对应于框架源代码中的文字介绍如下:/***@zh从Prefab实例化出新节点。*@enInstantiateanodefromthePrefab.*@paramprefabTheprefab.*......
  • 【蓝桥杯集训·每日一题】AcWing 3728. 城市通电
    写在前面本人CSDN博客主页:这里一、题目1、原题链接3728.城市通电2、题目描述平面上遍布着n座城市,编号1∼n。第i座城市的位置坐标为(xi,yi)。不同城市的位置有可能重合。现在要通过建立发电站和搭建电线的方式给每座城市都通电。一个城市如果建有发电站,或者通过电线直接或间......
  • 每日打卡
    素数问题描述:求一个范围内的所有素数问题分析:素数指除了1和本身外没有因数的数,2是最小的素数,所以判断一个数是否为质数可以看从2到其平方根的范围内有没有其的因数,有整数平方根的数不可能是素数代码:#include<stdio.h>#include<math.h>intmain(){intstart,end,i,k,m,count......
  • 5.20每日总结
    今天完成了人机交互设计的课堂作业,对一个搜索软件进行了一些评价。然后对整个团队中其他团队成员完成的任务自己也进行了一些了学习,弥补了自己的一些不足,然后对其他知识进行了期末的收尾和复习总结。......
  • 每日一题-黑白树
    添加链接描述之前做过一次,好像是看别人题解的,这次自己再做一次。考虑一个节点x需要覆盖,假设它的所有子树都已覆盖完全,那么有两种情况。1.子树中选择的点可以覆盖x,直接覆盖即可。2.选择的点覆盖不了x,那么这个时候我们需要选择最优的点来覆盖x。\(f[x],g[x]\)分别表示在子树中......
  • Python数据可视化小结
    1.引言原始形式的数据对大多数人来说可能都是枯燥乏味的,但是如果掌握正确的可视化工具,给人的印象就会变得引人入胜。本文通过实际例子,让我们利用数据可视化工具来探索不一样的数据体验。闲话少说,我们直接开始吧!2.举个栗子让我们从创建一个数据集开始,假设以下数据集包含2010-2020......
  • 每日打卡,超时
    集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里。比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸。本题给定一张不相容物品的清单,需要你检查每一张集装箱货品清单,判断它们是否能装在同一只箱子里。输入格式:输入第一行给出两个正整数:N (≤104)是成......
  • 每日打卡一小时(第二十八天)
    一.问题描述定义一个空的list,将用户输入的数组a[10]的10个数插入到list中,在list头部插入数b,用迭代器遍历list并输出其中的元素值。然后将list从大到小排序,删除list尾部的元素,用迭代器遍历list并输出其中的元素值。最后将list清空。二.设计思路注意列表容器的使用方法,注意迭代器......
  • 每日总结-23.5.19
    <%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>添加用户</title><style>body{background-color:#f2f2f2;font-family:Aria......