精华内容
下载资源
问答
  • 本文主要介绍了利用腾讯云表格文字识别API提取图片表格数据生成Excel文件。主要涉及的知识点有:腾讯云API的调用、json文件的处理以及Excel文件的生成。背景在工作中,各种电子文件和纸质文件满天飞,穿梭于各个...

    本文主要介绍了利用腾讯云表格文字识别API提取图片表格数据并生成Excel文件。主要涉及的知识点有:腾讯云API的调用、json文件的处理以及Excel文件的生成。

    背景

    在工作中,各种电子文件和纸质文件满天飞,穿梭于各个用户终端之间。有时,我们需要将纸质版数据电子化,往往需要耗费大量的人力,从而增加工作负担。一种被称为OCR的技术的发明,在一定程度上解决了这个问题。文字识别技术已经发展的十分成熟,我们熟知的软件,如QQ等,都可以进行文字识别。但是支持结构化的表格文字识别的工具不多,即使有,大多数也是收费的——目前我们还没有养成付费使用的习惯。

    鉴于上述情况,本文利用腾讯云提供的表格文字提取API,结合python,实现了表格文字批量提取的功能,避免了手动录入的尴尬,减轻了工作负担。

    使用工具及python包介绍

    腾讯API

    国内大型互联网公司都提供云服务,如阿里、百度、腾讯等。本文选择腾讯云服务,是因为提供的API说明比较详细,看一遍就能用。更良心的是,提供了在线测试的功能,基本不用写代码也能够测试效果。

    Python包

    pandas 数据分析必备包,用来对二维表数据进行分析整合。

    os 更改系统配置信息,如列出工作目录的文件,更改工作目录等。

    json 用来处理json数据,或者把字符串等其他格式的数据转化为json数据。

    base64 用来对图片进行base64编码,这是根据API的要求做的。

    xlwings 用来与Excel进行交互,几乎可以取代VBA,容易学习。

    tencentcloud 腾讯云服务,提供了很多功能,值得探索。

    re 正则表达式包,用来处理字符串中的空格等。

    必要的准备工作

    注册腾讯云,获取SecretID和SecretKey.

    在控制台新建一个API秘钥,获取SecretID和SecretKey.

    准备几张较为清晰的截图

    代码实现

    # from PIL import Image

    # import pytesseract

    ##导入通用包

    import numpy as np

    import pandas as pd

    import os

    import json

    import re

    import base64

    import xlwings as xw

    ##导入腾讯AI api

    from tencentcloud.common import credential

    from tencentcloud.common.profile.client_profile import ClientProfile

    from tencentcloud.common.profile.http_profile import HttpProfile

    from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException

    from tencentcloud.ocr.v20181119 import ocr_client, models

    #定义函数

    def excelFromPictures(picture,SecretId,SecretKey):

    try:

    with open(picture,"rb") as f:

    img_data = f.read()

    img_base64 = base64.b64encode(img_data)

    cred = credential.Credential(SecretId, SecretKey) #ID和Secret从腾讯云申请

    httpProfile = HttpProfile()

    httpProfile.endpoint = "ocr.tencentcloudapi.com"

    clientProfile = ClientProfile()

    clientProfile.httpProfile = httpProfile

    client = ocr_client.OcrClient(cred, "ap-shanghai", clientProfile)

    req = models.TableOCRRequest()

    params = '{"ImageBase64":"' + str(img_base64, 'utf-8') + '"}'

    req.from_json_string(params)

    resp = client.TableOCR(req)

    # print(resp.to_json_string())

    except TencentCloudSDKException as err:

    print(err)

    ##提取识别出的数据,并且生成json

    result1 = json.loads(resp.to_json_string())

    rowIndex = []

    colIndex = []

    content = []

    for item in result1['TextDetections']:

    rowIndex.append(item['RowTl'])

    colIndex.append(item['ColTl'])

    content.append(item['Text'])

    ##导出Excel

    ##ExcelWriter方案

    rowIndex = pd.Series(rowIndex)

    colIndex = pd.Series(colIndex)

    index = rowIndex.unique()

    index.sort()

    columns = colIndex.unique()

    columns.sort()

    data = pd.DataFrame(index = index, columns = columns)

    for i in range(len(rowIndex)):

    data.loc[rowIndex[i],colIndex[i]] = re.sub(" ","",content[i])

    writer = pd.ExcelWriter("../tables/" + re.match(".*\.",f.name).group() + "xlsx", engine='xlsxwriter')

    data.to_excel(writer,sheet_name = 'Sheet1', index=False,header = False)

    writer.save()

    #xlwings方案

    # wb = xw.Book()

    # sht = wb.sheets('Sheet1')

    # for i in range(len(rowIndex)):

    # sht[rowIndex[i],colIndex[i]].value = re.sub(" ",'',content[i])

    # wb.save("../tables/" + re.match(".*\.",f.name).group() + "xlsx")

    # wb.close()

    if not ('tables') in os.listdir():

    os.mkdir("./tables/")

    os.chdir("./pictures/")

    pictures = os.listdir()

    for pic in pictures:

    excelFromPictures(pic,"YoungID","YourKey")

    print("已经完成" + pic + "的提取.")

    展开全文
  • 用一个Excel表格做数据库,在另一个Excel表格中输入数据库中的某一个数据,调取全部数据第2个表的A2输入=index(数据库!a:a,match($d2,数据库!$d:$d,))公式右拉到C列E列输入=index(数据库!e:e,match($d2,数据库!$d:$d...

    用一个Excel表格做数据库,在另一个Excel表格中输入数据库中的某一个数据,调取全部数据

    第2个表的A2输入

    =index(数据库!a:a,match($d2,数据库!$d:$d,))

    公式右拉到C列

    E列输入

    =index(数据库!e:e,match($d2,数据库!$d:$d,))

    如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的?

    insert into tablename

    SELECT *

    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

    'Data Source="c:\temp1.xls";User ID=;Password=;Extended properties=Excel 5.0')...[Sheet1$]

    注意如边数据类型不需要用cast或convert转换数据类型。

    这是在查询器中执直接导入的脚本

    sql2000直接执行即可,sql2005以上的需把外围配置打开(sql菜单里就有)

    insert into tablename --这里输入你要导入的表

    SELECT * --这里可以设置需要的execl中的字段

    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',--这个是打开数据源,不用改

    'Data Source="c:\temp1.xls";--这里设置你的execl存放的路径和文件名

    User ID=;Password=;Extended properties=Excel 5.0')--这里也不用改,标准格式

    ...[Sheet1$]--这里设置execl的工作表名,一般没改过的话execl中的工作表默认三个

    --Sheet1,Sheet2,Sheet3,注意别把$忘写了。

    Excel表格怎样才能做为一个小型的数据库来使用

    ”数据“菜单-》”有效性“-择“序列”-》设置序列即可。

    参考这里:

    http://wenku.baidu.com/view/b908b40bf78a6529647d53f1.html

    求助用python从数据库取数据动态生成表格的方法

    一、可使用三方库

    python中处理excel表格,常用的库有xlrd(读excel)表、xlwt(写excel)表、openpyxl(可读写excel表)等。xlrd据较大的excel表时效率高于openpyxl,所以我在写脚本时就采用了xlrd和xlwt这两个库。介绍及下载地址为:http://www.python-excel.org/ 这些库文件都没有提供修改现有excel表格内容的功能。一般只能将原excel中的内容读出、做完处理后,再写入一个新的excel文件。

    二、常见问题

    使用python处理excel表格时,发现两个个比较难缠的问题:unicode编码和excel中记录的时间。

    因为python的默认字符编码都为unicode,所以打印从excel中读出的中文或读取中文名的excel表或sheet时,程序提示错误UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)。这是由于在windows中,中文使用了gb2312编码方式,python将其当作unicode和ascii来解码都不正确才报出的错误。使用VAR.encode('gb2312')即可解决打印中文的问题。(很奇怪,有的时候虽然能打印出结果,但显示的不是中文,而是一堆编码。)若要从中文文件名的excel表中读取数据,可在文件名前加‘u’表示将该中文文件名采用unicode编码。

    有excel中,时间和日期都使用浮点数表示。可看到,当‘2013年3月20日’所在单元格使用‘常规’格式表示后,内容变为‘41353’;当其单元格格式改变为日期后,内容又变为了‘2013年3月20日’。而使用xlrd读出excel中的日期和时间后,得到是的一个浮点数。所以当向excel中写入的日期和时间为一个浮点数也不要紧,只需将表格的表示方式改为日期和时间,即可得到正常的表示方式。excel中,用浮点数1表示1899年12月31日。

    三、常用函数

    以下主要介绍xlrd、xlwt、datetime中与日期相关的函数。

    import xlrd

    import xlwt

    from datetime

    def testXlrd(filename):

    book=xlrd.open_workbook(filename)

    sh=book.sheet_by_index(0)

    print "Worksheet name(s): ",book.sheet_names()[0]

    print 'book.nsheets',book.nsheets

    print 'sh.name:',sh.name,'sh.nrows:',sh.nrows,'sh.ncols:',sh.ncols

    print 'A1:',sh.cell_value(rowx=0,colx=1)

    #如果A3的内容为中文

    print 'A2:',sh.cell_value(0,2).encode('gb2312')

    def testXlwt(filename):

    book=xlwt.Workbook()

    sheet1=book.add_sheet('hello')

    book.add_sheet('word')

    sheet1.write(0,0,'hello')

    sheet1.write(0,1,'world')

    row1 = sheet1.row(1)

    row1.write(0,'A2')

    row1.write(1,'B2')

    sheet1.col(0).width = 10000

    sheet2 = book.get_sheet(1)

    sheet2.row(0).write(0,'Sheet 2 A1')

    sheet2.row(0).write(1,'Sheet 2 B1')

    sheet2.flush_row_data()

    sheet2.write(1,0,'Sheet 2 A3')

    sheet2.col(0).width = 5000

    sheet2.col(0).hidden = True

    book.save(filename)

    if __name__=='__main__':

    testXlrd(u'你好。xls')

    testXlwt('helloWord.xls')

    base=datetime.date(1899,12,31).toordinal()

    tmp=datetime.date(2013,07,16).toordinal()

    print datetime.date.fromordinal(tmp base-1).weekday()

    如何在excel表格中读取sql数据库数据

    excel程带的外部数据连接功能,可以连接sql服务器。具体步骤为:

    1、选择【数据】选项卡,在【获取外部数据】分组,找到【自其他来源】。

    2、单击【自其他来源】按钮,打开【选择来源】下拉菜单。

    3、选择【来自sql

    server】打开【数据连接向导】对话框。

    4、填写服务器名称、登录的用户名及密码等信息,即可成功连接。

    展开全文
  • 相信有不少朋友日常工作会用到 Excel ...首先我们有这么一份数据表 source.csv: 我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据: 最终要展现的数...

    相信有不少朋友日常工作会用到 Excel 处理各式表格文件,更有甚者可能要花大把时间来做繁琐耗时的表格整理工作。最近有朋友问可否编程来减轻表格整理工作量,今儿我们就通过实例来实现 Python 对表格的自动化整理。

    首先我们有这么一份数据表 source.csv:

    我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:

    按照以下分组名单 group.xls 来整理数据表中的数据:

    最终要展现的数据项:

    其中“K数据/60”为数据表中的“数据K”/60后保留的2位小数

    我们先看手工 Excel 如何处理以上需求:要在 source.csv 数据表中读取读取每条数据,放入 group.xls 匹配的分组成员中,最后筛选需要的数据项,再对特定的 “数据K”进行运算处理。

    那么 Python 又将如何操作呢?这里我们要用到功能强大的 pandas 库。

    pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

    pandas 百度百科

    首先导入 pandas 库,通过相关的函数读取 csv 和 xls 表格内容:

    import pandas as pd

    # 读取 group.xls 分组信息

    group = pd.read_excel("group.xls",header=None) group.columns=["分组","角色"] print(group) # 读取 source.csv 获取所有成员数据 source = pd.read_csv("source.csv") print(source)

    我们可以首先对 source.csv 中的数据项进行筛选,需要的数据项有“角色”、“编号”、“数据B”、“数据C”、“数据D”和“数据K”:

    # 通过 iloc[:,[列坐标]] 来定位需要的各列数据

    filter_merge = source.iloc[:,[0,2,4,5,6,13]]

    print(filter_merge)

    接下来是根据分组角色来匹配角色数据,注意到 group.xls 和 source.csv 共有“角色”一项,我们可以通过此项将两个表格融合从而形成匹配填充的效果。

    combine = pd.merge(group,filter_merge,on="角色")

    接下来我们在第二列插入运算后的“数据K/60”:

    combine.insert(1,"数据K/60",round(filter_merge["数据K"]/60,2))

    最终,我们将生成的数据格式写入新的 xlsx 表格中:

    combine.to_excel(excel_writer="result.xlsx",index=False)

    最终自动生成的表格如下:

    以上便是 Excel 表格整理的 Python 代码简单实现,在操作过程中也遇到几个问题贴在这里供大家参考:

    导入 pandas 时可能会报错:

    解决:根据报错信息安装需要的相关模块

    要进行表格整理的电脑为公司电脑、无法连接外网下载 Python

    解决:

    参照以上链接,先在外网电脑下载 Python 安装文件以及相关的模块安装文件,拷贝到无网络电脑进行安装

    以上表格整理的实例在现实工作有参考意义么:

    回答:文中表格的原型是一份员工工作记录,根据人员分组进行相关的数据统计。类似的分组统计成员数据都可以根据此简单 Python 模版来实现。

    展开全文
  • 首先观察excel的结构吗,发现每一次实验在excel中都会生成一个sheet,每个sheet中都会有一列数据,我们需要提取每个sheet中特定单元格的值,并与sheet名对应。很明显这用循环函数便可轻松完成。代码如下:import ...

    c888acc18d4f1ac53a700744d54318cd.png

    在实验中需要从仪器导出的excel中提取大量数据,这是一份非常枯燥的工作。

    为了节省时间,我决定写一个小程序。

    首先观察excel的结构吗,发现每一次实验在excel中都会生成一个sheet,每个sheet中都会有一列数据,我们需要提取每个sheet中特定单元格的值,并与sheet名对应。

    很明显这用循环函数便可轻松完成。

    代码如下:

    import 

    这样一个简易的python程序就写出来了。

    然鹅,怎么让没有编程基础的同学都用上这个程序呢?这时候就要把它封装成windows的应用程序。

    为此我们需要用到第三方库Pyinstaller,具体教程参考

    州的先生:如何为Python程序制作Windows安装包?zhuanlan.zhihu.com

    ,最终运行结果如图所示。

    7ac6575e11d7ede9f4df1ccb41de5437.png
    程序运行示例
    展开全文
  • 不久前,一位开发者提供了一个名为 Camelot 的工具,使用三行代码就能从 PDF 文件中提取表格数据。PDF 文件是一种非常常用的文件格式,通常用于正式的电子版文件。它能够很好的将不同的排版格式固定下来,形成版面...
  • #html表格生成器,传入list进行格式化def generate_tr(list):return '%s%s%s%s%s%s%s%s%s%s%s%s%s'%(list[0],list[1],list[2],list[3],list[4],list[5],list[6],list[7],list[8],list[9],list[10],list[11],list[12]...
  • 大家好,我是朱小五就知道你们最喜欢Python办公自动化系列今天我们来讲解一个比较简单的案例,使用openpyxl从Excel中提取指定的数据生成新的文件,之后进一步批量自动化实现这个功能,通过本例可以学到的知识点:...
  • 首先观察excel的结构吗,发现每一次实验在excel中都会生成一个sheet,每个sheet中都会有一列数据,我们需要提取每个sheet中特定单元格的值,并与sheet名对应。很明显这用循环函数便可轻松完成。代码如下:import ...
  • 首先观察excel的结构吗,发现每一次实验在excel中都会生成一个sheet,每个sheet中都会有一列数据,我们需要提取每个sheet中特定单元格的值,并与sheet名对应。很明显这用循环函数便可轻松完成。代码如下:import ...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet可以采用一些操作Excel块去实现,比如xlrd、xlwt、openpyxl、xlsxwriter等模块。xlrd模块用于读取Excel表,...
  • 如下图所示,有一个近2000行的数据表,需要把其中含有关键字‘颈廓清术,中央组(VI组)’的数据所在行都都给抽取出来,且提取后的表格不能改变原先的顺序。 问题分析: 一开始想用excel的筛选功能,但是发现只提供...
  • 首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项:其中"K数据/60”为数据表中的&...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • 我相信我的很多朋友会使用Excel来处理...首先,我们有这样一个数据表:我们要做的就是从上面的表中提取数据生成一个表,符合下列要求:组织根据下列数据表中的数据分组名单:最后一个显示数据项:其中,\u201CK数据\/ 60...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • 本篇文章主要介绍了python技能之导出excel的实例代码,小编觉得挺不错...从数据库或者现有的文本文件中提取符合要求的数据,做一个二次处理,处理完成后的数据最终存储到excel表格中供其他部门的人继续二次分析。在...
  • 正如tin上说的,我正在编写一个Python(2.7)脚本,它查看两个电子表格(另存为.csv),比较某些列以找到包含同一个人信息的行,然后从每个电子表格中为此人提取特定数据,并将这些数据放到另一个电子表格中。...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • Python 自动整理 Excel 表格

    千次阅读 2019-08-01 14:48:08
    Python 自动整理 Excel 表格 相信有不少朋友日常工作会用到 Excel 处理各式表格文件,更有甚者可能要花大把时间来做繁琐...我们要做的是从上表中提取数据,来生成一份符合以下要求的表格: 按照以下分组名单 grou...
  • python将excel数据提取到word

    千次阅读 热门讨论 2020-02-17 01:55:29
    python将excel数据提取到word 工作中可能需要将excel中的数据批量生成word,今天分享将excel数据提取,然后生成word数据的方法 先看要求,将当前目录下(定值回执统计表.xlsx)表格中的每一行数据按照word模板生成...
  • 一、使用工具及python包介绍 腾讯云API 国内大型互联网公司都提供云服务,如阿里、百度、腾讯等。本文选择腾讯云服务,是因为提供的API说明比较详细,看一遍就能用。更良心的是,提供了在线测试的功能,基本不用写...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • 首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项:其中"K数据/60”为数据表中的&...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...
  • 相信有不少朋友日常工作会用到 ...首先我们有这么一份数据表 source.csv:我们要做的是从上表中提取数据,来生成一份符合以下要求的表格:按照以下分组名单 group.xls 来整理数据表中的数据:最终要展现的数据项...

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

python提取数据生成表格

python 订阅