精华内容
下载资源
问答
  • 2021-06-12 19:09:06

    在html中,可以使用border-spacing属性来设置表格间距,该属性设置相邻单元格的边框间的距离(仅用于“边框分离”模式),语法格式“border-spacing:水平间距 垂直间距;”。

    880577629966bb7273052cf0de3c3bc8.png

    本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

    在html中,可以使用border-spacing属性来设置表格间距。

    border-spacing属性用于表格的边框在“分离”的状态下,设置相邻单元格的边框间的距离。

    该属性会在表格边框“分离”时,设置行和单元格的边框在横向和纵向上的间距。

    注:只有当表格边框各自独立(即border-collapse属性设置separate时)此属性才起作用。

    属性值:

    描述

    length length

    规定相邻单元的边框之间的距离。使用 px、cm 等单位。不允许使用负值。

    如果定义一个 length 参数,那么定义的是水平和垂直间距。

    如果定义两个 length 参数,那么第一个设置水平间距,而第二个设置垂直间距。

    示例:

    table,

    td,

    th {

    border: 1px solid black;

    }

    td,th{

    padding: 5px 20px;

    }

    #table2 {

    border-collapse: separate;

    border-spacing: 15px;

    }

    #table3 {

    border-collapse: separate;

    border-spacing: 15px 30px;

    }

    border-spacing: 15px:

    使用“border collapse:separate”时,border spacing属性可用于设置单元格之间的间距:

    姓名年龄
    Peter20
    Lois20

    效果图:

    4c7fe622f2f0c4486223277af99c199f.png

    说明:

    该border-spacing属性的作用等同于HTML标签属性cellspacing。

    该属性指定分隔边框模型中单元格边界之间的距离。在指定的两个长度值中,第一个是水平间隔,第二个是垂直间隔。除非 border-collapse 被设置为 separate,否则将忽略这个属性。尽管这个属性只应用于表,不过它可以由表中的所有元素继承。

    推荐教程:html视频教程、css视频教程

    更多相关内容
  • 表格内容的筛选</title> <link type="text/css" rel="stylesheet" href="css/contains.css" /> <style type="text/css"> table { width: 50%; border: 1px solid; background-color: #8FBC8F...
  • 主要介绍了python opencv将表格图片按照表格框线分割和识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 前言 示例版本为 Element-ui 2.13.1 + Vue 2.6.11 本人是做后台开发的,由于公司业务要求需要将前后台模块进行分离,两年...Element-UI 的 el-table 提供了设置高度的选项,在代码设置 height 属性就可以现在表格
  • word中表格还有内容,却自动断开到下一页,且页面有多余空白部分。

    问题图:

    其实很简单一件事,不要设置表格的高度就行了。

    展开全文
  • HTML表格以及对表格样式的处理

    千次阅读 2021-08-28 23:48:25
    本篇文章将来学习HTML表格以及使用CSS对表格样式的处理,本篇文章包含的内容如下图所示: 什么是表格 在现实生活表格是一种比较常见的形式,例如报名表、简历等。在HTML页面也提供了表格相关的一组元素来...

    Hello 大家好,我是一碗周,不是你想的那个“一碗粥”,是一个不想被喝掉的前端👨🏻‍💻,如果我写的文章有幸可以得到你的青睐,万分有幸~

    这是【从头学前端】系列文章的第二十六篇-《HTML中的表格以及对表格样式的处理》

    编写不易转载请获得允许

    写在前面

    本篇文章将来学习HTML中的表格以及使用CSS对表格样式的处理,本篇文章包含的内容如下图所示:

    00_导读.png

    什么是表格

    在现实生活中,表格是一种比较常见的形式,例如报名表、简历等。在HTML页面中也提供了表格相关的一组元素来在HTML页面中实现表格的效果。

    什么是表格

    表格 是一组由行和列组成的结构化数据集,可以将不同类型的数据集成在一张表中以显示不同类型数据之间存在的某种关系,如下图所示:

    01_什么是表格.png

    如上述所示,在表格中存在着一些概念,如下所示:

    • 行:水平方向上的一组数据,一般为某个主题的各种数据内容,例如上图中是某个人的各项信息。

    • 列:垂直方向上的一组数据,一般为某一项数据,例如上图中的“姓名”一栏。

    • 单元格:表格中的显示某一项数据的方块。

    什么是表格元素

    为了可以在HTML页面中实现表格的效果,HTML提供了一系列表格元素。根据表格中的一些概念,HTML页面中提供的表格元素如下:

    • <table>元素:表示一个表格,作为表格的容器。

    • <tr>元素:表示一个表格中的行。

    • <td>元素:表示一个表格中的单元格。

    如下示例代码展示了HTML页面中的一个基本表格:

    <table>
        <tr><th>姓名</th><th>区域</th></tr>
        <tr><td>梵云飞</td><td>西西域</td></tr>
        <tr><td>欢都落兰</td><td>南国</td></tr>
    </table>
    

    上述代码的CSS样式如下:

    td, th, table { border: 1px solid #284; }
    
    

    代码运行结果如下图所示:

    02_表格元素.png

    tips:上述代码会在后面依次讲解

    表格的基本结构

    HTML 页面提供了一组有关表格的元素,其中最为基本的结构如下示例代码所示:

    <table>  
        <tr>  
            <td>单元格</td>  
        </tr>  
     </table>
    

    表格元素的最为基本的结构为:

    1. <table>元素:表示 HTML页面中的一个表格,作为表格的容器。

    2. <tr>元素:表示HTML页面中一个表格的行。一个表格可以拥有一行或多行。

    3. <td>元素:表示HTML页面中的一个表格中一行的单元格。一行可以拥有一个单元格或多个单元格。

    表格的基本结构在一般表格应用案例中的分析如下图所示:

    03_表格的基本结构.png

    标题单元格

    HTML中的<th>元素用来定义为一组单元格的标题。该元素的用法与<td>元素保持一致,定义在<tr>元素中。

    如下示例代码展示了<th>元素的用法:

    <table>
        <tr>
            <th>姓名</th>
            <th>区域</th>
        </tr>
        <tr>
            <td>梵云飞</td>
            <td>西西域</td>
        </tr>
        <tr>
            <td>欢都落兰</td>
            <td>南国</td>
        </tr>
    </table>
    

    代码运行结果如下图所示:

    04_标题单元格.png

    如上图所示,我们可以发现<th>元素中的文本内容在浏览器运行时会自动加粗并且居中显示的效果。

    <th>元素的scope属性用来定义与该标题单元格相关联的单元格,是一个枚举类型,具体的值如下所示:

    • row:表示当前标题单元格关联一行中的所有单元格。

    • col:表示当前标题单元格关联一列中的所有单元格。

    • rowgroup:表示当前标题单元格属于某一个行组并与其中所有单元格相关联。

    • colgroup:表示当前标题单元格属于某一个列组并与其中所有单元格相关联。

    • auto:由浏览器自动分配。

    如下示例代码展示了<th>元素的scope属性的用法:

    <table>
        <tr>
            <th>姓名</th>
            <th>区域</th>
        </tr>
        <tr>
            <th scope="row">梵云飞</th>
            <td>西西域</td>
        </tr>
        <tr>
            <th scope="row">欢都落兰</th>
            <td>南国</td>
        </tr>
    </table>
    

    代码运行结果如下图所示:

    05_th的scope属性.png

    值得注意的是,即使一个单元格中没有任何内容,<td>元素或<th>元素仍然需要定义,来表示一个空单元格的存在。

    表格的标题

    HTML中的<caption>元素用来定义 HTML 页面中表格的标题。该元素一般作为<table>元素的第一个子级元素出现,同时会显示在表格内容中的最前面,并且会在水平方向居中显示。

    如下示例代码展示了<caption>元素的用法:

    <table>
        <caption>
            狐妖小红娘
        </caption>
        <tr>
            <th>姓名</th>
            <th>区域</th>
        </tr>
        <tr>
            <td>梵云飞</td>
            <td>西西域</td>
        </tr>
        <tr>
            <td>欢都落兰</td>
            <td>南国</td>
        </tr>
    </table>
    

    代码运行结果如下图所示:

    06_表格的标题.png

    跨行与跨列

    HTML页面中的表格除了常规的之外,还可以实现跨行或跨列的效果。具体实现方式是通过如下属性来实现的:

    • colspan属性:用来规定表格单元格可横跨的列数。

    • rowspan属性:用来规定表格单元格可横跨的行数。

    如下示例代码展示了跨行的效果:

    <table>
        <tr>
            <!-- 占两个单元格 -->
            <th colspan="2">狐妖小红娘</th>
        </tr>
        <tr>
            <!-- 垂直占4个单元格 -->
            <th rowspan="4">四大妖皇</th>
            <td>涂山红红</td>
        </tr>
        <tr>
            <td>梵云飞</td>
        </tr>
        <tr>
            <td>石宽</td>
        </tr>
        <tr>
            <td>欢都擎天</td>
        </tr>
    </table>
    

    代码运行结果如下图所示:

    07_跨行与跨列.png

    表格的完整结构

    在HTML中一个表格的完整结构还包括以下三个元素

    • <thead>元素:用来定义HTML页面中表格的标题单元格的行。

    • <tbody>元素:用来定义HTML页面中表格的主体(表格中真正的数据内容)。

    • <tfoot>元素:用来定义HTML页面中表格一组各列的汇总行。

    如下示例代码展示了<thead>元素、<tbody>元素和<tfoot>元素的用法:

    <table>
        <thead>
            <tr>
                <th colspan="2">狐妖小红娘</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th rowspan="4">四大妖皇</th>
                <td>涂山红红</td>
            </tr>
            <tr>
                <td>梵云飞</td>
            </tr>
            <tr>
                <td>石宽</td>
            </tr>
            <tr>
                <td>欢都擎天</td>
            </tr>
        </tbody>
    </table>
    

    如上图所示,<thead>元素、<tbody>元素和 <tfoot>元素不会使表格更易于屏幕阅读器用户访问,也不会造成任何视觉上的改变。然而,它们在应用样式和布局上会起到作用,可以更好地让CSS应用到表格上。

    表格的样式操作

    表格布局

    CSS中的table-layout属性用来实现表格中单元格的布局,行和列的计算。该属性具有如下2个值:

    • auto:默认值,浏览器会使用自动表布局算法,已达到表格及其单元格的宽度被调整以适应内容。

    • fixed:表格或表格中列的宽度是由表格中第一行单元格的宽度决定的,后续行的单元格则不会影响表格中列的宽度。

    以上两个值产生的结果可能不同,但两者之间最大的差异主要是速度上的。相对fixed的速度更快,而auto的速度稍慢,原因如下:

    • fixed:之所以速度快,主要原因是一旦浏览器解析了表格中第一行单元格的宽度就可以呈现整个表格,而不依赖表格中单元格的内容。

    • auto:表格的width属性的值为auto就会触发这种方式,无论table-layout属性的值是什么。这种方式之所以速度慢,主要原因在于每渲染一个新的单元格都要完成整个表格的布局。

    表格标题

    CSS中的caption-side属性用来设置 HTML 页面中表格的<caption>元素显示的位置,该属性需要与<caption>属性配合使用。该属性的值具有如下 2 个:

    • top:默认值,表示表格标题显示在表格的上方。

    • bottom:表示表格标题显示在表格的下方。

    如下示例代码展示了caption-side属性值为bottom时的情况:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8" />
            <meta http-equiv="X-UA-Compatible" content="IE=edge" />
            <meta name="viewport" content="width=device-width, initial-scale=1.0" />
            <title>caption-side</title>
            <style>
                td,
                th,
                table {
                    border: 1px solid #284;
                }
                caption {
                    caption-side: bottom;
                }
            </style>
        </head>
        <body>
            <table>
                <caption>
                    狐妖小红娘
                </caption>
                <tr>
                    <th>姓名</th>
                    <th>区域</th>
                </tr>
                <tr>
                    <td>梵云飞</td>
                    <td>西西域</td>
                </tr>
                <tr>
                    <td>欢都落兰</td>
                    <td>南国</td>
                </tr>
            </table>
        </body>
    </html>
    
    

    代码运行结果如下图所示:

    08_caption-side属性.png

    处理空单元格

    CSS中的empty-cells属性用来设置HTML页面的表格中没有可见内容的单元格的边框和背景是显示还是隐藏。该属性的值具有如下两个:

    • show:默认值,边框和背景正常渲染,与普通元素一样。

    • hide:边框和背景被隐藏。

    如下示例代码展示了empty-cells属性的用法:

    table {
        empty-cells: show;
    }
    

    两者区别如下图所示:

    09_empty-cells属性.png

    单元格边框

    CSS中的border-collapse属性用来设置HTML页面中表格的边框是分离的还是合并的,该属性具有如下两个值:

    • separate:默认值,每个单元格拥有独立的边框。

    • collapse:相邻的单元格共用同一条边框。

    border-callapse属性值为separate时称为分隔(_separated)_模式 ,是HTML表格的传统模式。这种模式下,相邻单元格都拥有不同的边框。边框之间的距离是通过CSS的border-spacing属性来进行设置。

    CSS中的border-spacing属性用来设置HTML页面中表格的相邻单元格边框之间的距离。该属性的值设置具有如下两种方式:

    • 单值:同时设置单元格之间在水平方向和垂直方向的距离。

    • 双值:第一个值用来设置相邻两列的单元格之间的水平方向的距离,第二个值用来设置相邻两行的单元格之间的垂直方向的距离。

    如下示例代码展示了border-callapse属性值为collapse时,border-spacing属性的用法:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8" />
            <meta http-equiv="X-UA-Compatible" content="IE=edge" />
            <meta name="viewport" content="width=device-width, initial-scale=1.0" />
            <title>边框处理</title>
            <style>
                td,
                th,
                table {
                    border: 1px solid #284;
                }
                table {
                    border-collapse: collapse;
                    border-spacing: 0;
                }
            </style>
        </head>
        <body>
            <table>
                <tr>
                    <th>姓名</th>
                    <th>区域</th>
                </tr>
                <tr>
                    <td>梵云飞</td>
                    <td>西西域</td>
                </tr>
                <tr>
                    <td>欢都落兰</td>
                    <td>南国</td>
                </tr>
            </table>
        </body>
    </html>
    
    

    代码运行结果如下图所示:

    10_边框处理.png

    总结

    表格(总结).png

    预告:下一篇文章我们将来学习CSS中的结构伪类选择器

    展开全文
  • 怎么提取pdf表格数据In this article, we talk about the challenges and principles of extracting tabular data from PDF docs. We also compare six software tools to find out how they perform their ...

    怎么提取pdf中的表格数据

    In this article, we talk about the challenges and principles of extracting tabular data from PDF docs. We also compare six software tools to find out how they perform their respective tasks of parsing PDF tables and getting data out of them.

    在本文中,我们讨论了从PDF文档中提取表格数据的挑战和原理。 我们还比较了六个软件工具,以了解它们如何执行各自的任务以解析PDF表并从中获取数据。

    为什么从PDF中提取表格数据是一个挑战 (Why It’s a Challenge to Extract Tabular Data from PDF)

    Today PDF is used as the basis of communication between companies, systems, and individuals. It is regarded as the standard for finalized versions of documents as it is not easily editable except in fillable PDF forms. Most popular use cases for PDF documents in the business environment are:

    今天,PDF用作公司,系统和个人之间进行交流的基础。 它被认为是文档定稿版本的标准,因为除了可填写的PDF表格外,它不容易编辑。 在业务环境中,PDF文档的最流行用例是:

    • Invoices

      发票
    • Purchase Orders

      订单
    • Shipping Notes

      运输注意事项
    • Reports

      报告书
    • Presentations

      简报
    • Price & Product Lists

      价格和产品清单
    • HR Forms

      人力资源表格

    The sheer volume of information exchanged in PDF files means that the ability to extract data from PDF files quickly and automatically is essential. Spending time extracting data from PDFs to input into third party systems can be very costly for a company.

    PDF文件中大量的信息交换意味着快速,自动地从PDF文件提取数据的能力至关重要。 花费时间从PDF提取数据以输入到第三方系统对于公司而言可能是非常昂贵的。

    The main problem is that PDF was never really designed as a data input format, but rather, it was designed as an output format ensuring that data will look the same at any device and be printed correctly. A PDF file defines instructions to place characters (and other components) at precise x,y coordinates. Words are simulated by placing some characters closer than others. Spaces are simulated by placing words relatively far apart. As for tables — you are right — they are simulated by placing words as they would appear in a spreadsheet.

    主要问题是PDF从来没有真正设计成数据输入格式,而是设计成输出格式,以确保数据在任何设备上看起来都一样并且可以正确打印。 PDF文件定义了将字符(和其他组件)放置在精确的x,y坐标处的指令。 通过将某些字符放置得比其他字符更近来模拟单词。 通过将单词相对分开放置来模拟空间。 至于表,您是对的,它们是通过像在电子表格中一样放置单词来模拟它们的。

    We see that the PDF format has no internal representation of a table structure, which makes it difficult to extract tables for analysis. Unfortunately, a lot of open data is stored in PDFs, which was not designed for tabular data in the first place.

    我们看到PDF格式没有表结构的内部表示,这使得提取表进行分析变得很困难。 不幸的是,许多开放数据存储在PDF中,而这些数据最初并不是为表格数据而设计的。

    Luckily, different tools for extracting data from PDF tables are available in the market. Being somewhat similar to each other, they have their own advantages and disadvantages. In this article, we compare the most popular software that can help get tabular data out of PDFs and present it in an easy-to-read, editable, and searchable format.

    幸运的是,市场上有多种用于从PDF表提取数据的工具。 它们彼此有点相似,但各有优缺点。 在本文中,我们将比较最流行的软件,该软件可以帮助从PDF中获取表格数据,并以易于阅读,可编辑和可搜索的格式显示它们。

    OCR:何时以及为什么使用它 (OCR: When and Why to Use It)

    Before choosing a tool, the first point is to understand what type of PDF files — text- or image-based — you will work with. It will impact on whether to use Optical Character Recognition (OCR) or not.

    在选择工具之前,首先要了解您将使用哪种类型的PDF文件(基于文本或图像)。 这将影响是否使用光学字符识别(OCR)。

    For example, we have a report generated as an output by a piece of software and imported in PDF format. Commonly, it is a text-based PDF.

    例如,我们有一个报告,它是由一个软件生成的输出,并以PDF格式导入。 通常,它是基于文本的PDF。

    If you work with image-based PDFs like scanned paper docs, or, for example, files captured by a digital camera — this is where OCR comes in. OCR enables machines to recognize written text or printed letters inside images. In other words, the technology helps to convert ‘text-as-an-image’ into an editable and searchable format.

    如果您使用基于图像的PDF(例如,扫描的纸张文档),或者使用数码相机捕获的文件,则可以使用OCR。OCR使机器可以识别图像中的文字或印刷字母。 换句话说,该技术有助于将“文本图像”转换为可编辑和可搜索的格式。

    Image for post
    Document scanned and converted into a text document using OCR
    使用OCR扫描文档并将其转换为文本文档

    o if your PDF is image-based, then the process of data extraction consists of two tasks: to recognize text and then recognize the table structure (i.e., how the text is placed in rows and columns). Some tools, like Amazon Textract, can complete both of them. But since text recognition is a separate task, it can be performed independently, with the help of pure OCR tools. There are dozens of them, but in this article, we will focus on the table structure recognition.

    o如果您的PDF是基于图像的,则数据提取过程包括两个任务:识别文本,然后识别表结构(即,文本在行和列中的放置方式)。 某些工具(例如Amazon Textract)可以完成这两个工具。 但由于文本识别是一项单独的任务,因此可以在纯OCR工具的帮助下独立执行。 它们有数十种,但是在本文中,我们将重点放在表结构识别上。

    从表中检测和提取数据的细节 (Nuances of Detecting and Extracting Data from Tables)

    Let’s assume that we have a text-based PDF document generated as an output by a piece of software. It contains tabular data, and we want to extract it and present in a digital format. There are two main ways to detect tables:

    假设我们有一个基于文本的PDF文档,它是由一个软件生成的输出。 它包含表格数据,我们希望将其提取并以数字格式显示。 检测表有两种主要方法:

    • Manually, when you detect column borders by eye and mark table columns by hands

      手动,当您用肉眼检测列边界并用手标记表格列时
    • Automatically, when you rely on program algorithms

      自动,当您依赖程序算法时

    Some tools offer either manual or automatic detection, while others combine both variants. From our experience, we can say that most of our clients’ cases require automatic recognition because they handle hundreds of documents with a slightly variable table structure. For example, columns’ width can differ not only between two documents but also on different pages inside one document. Therefore, if we mark each column in each table on each page by hand, it would take a lot of time and effort.

    一些工具提供手动或自动检测,而其他工具则结合了这两种变体。 根据我们的经验,我们可以说大多数客户的案例需要自动识别,因为他们处理的表结构略有变化的数百个文档。 例如,列的宽度不仅可以在两个文档之间不同,而且可以在一个文档内的不同页面上不同。 因此,如果我们在每个页面上手动标记每个表中的每一列,则将花费大量时间和精力。

    For our study, we created a sample one-page document covering all typical difficulties of data extraction caused by an ‘inconsistent’ table structure. Here is it:

    对于我们的研究,我们创建了一个样本的单页文档,其中涵盖了由“不一致”表结构引起的所有典型数据提取困难。 就这个:

    Image for post
    Sample document created for the study
    为研究创建的样本文件

    As you can see, in our sample document, we have multiple tables, and all of them have different widths of columns and inconsistent alignments. In such cases, manual detection can be tedious. For this reason, we are not going to use software that offers only manual table data detection. We choose an automatic way, and let’s see how good are algorithms for each of the tools.

    如您所见,在我们的示例文档中,我们有多个表,并且所有表都有不同的列宽和不一致的对齐方式。 在这种情况下,手动检测可能很乏味。 因此,我们将不使用仅提供手动表格数据检测的软件。 我们选择一种自动方式,让我们看看每种工具的算法效果如何。

    In addition to the table structure’s basic elements, we also deliberately included some ‘extra formatting’ that can potentially complicate the process of recognition:

    除了表结构的基本元素外,我们还故意包含一些“额外格式”,这些格式可能会使识别过程复杂化:

    • Multiple tables on a page — all of them should be detected

      页面上有多个表格-应该检测到所有这些表格
    • Non-tabular data: headers and page number

      非表格数据:标题和页码
    • The multiline text inside cells

      单元格内的多行文字
    • Table column & row spanning — merged cells

      表的列和行跨度—合并的单元格
    • Small table cell margins inside the table and between the table and the header

      表格内部以及表格和标题之间的小表格单元格边距

    PDF表提取库和工具的比较 (Comparison of PDF Table Extraction Libraries and Tools)

    From this study, you will learn about how six software tools perform their respective tasks of parsing PDF tables and how they stack up against each other. In the first part, we compare Tabula, PDFTron, and Amazon Textract.

    通过本研究,您将了解六个软件工具如何执行各自的解析PDF表的任务,以及它们如何相互堆叠。 在第一部分中,我们比较了Tabula,PDFTronAmazon Textract。

    Let’s see how libraries and tools mentioned above coped with this task of data recognition and extraction based on our sample document.

    让我们看看上面提到的库和工具如何根据我们的示例文档来完成数据识别和提取的任务。

    塔布拉 (Tabula)

    Tabula is a tool for liberating data tables locked inside PDF files. Tool overview:

    Tabula是用于释放锁定在PDF文件中的数据表的工具。 工具概述:

    • Type of software available: web application, requires simple local server setup

      可用软件类型: Web应用程序,需要简单的本地服务器设置

    • Platforms: Windows, MacOS, open source (GitHub, MIT Licence)

      平台: Windows,MacOS,开源(GitHub,MIT Licence)

    • Terms of use: free, open-source

      使用条款:免费,开源

    • Supported output formats: CSV, TSV, JSON

      支持的输出格式: CSV,TSV,JSON

    • Notes: Tabula only works on text-based PDFs, not scanned documents

      注意: Tabula仅适用于基于文本的PDF,不适用于扫描的文档

    After uploading our sample file and parsing data from it via Tabula, we got the following output:

    在上传示例文件并通过Tabula解析其中的数据之后,我们得到以下输出:

    Image for post
    Image for post
    Tabula: the result of detection of tables in the sample document
    表格:示例文档中表格的检测结果

    Zones marked in red are parts of the original file where Tabula detected tables. At this step, data recognition is captured correctly; all tables are detected, extraneous elements do not distort the result.

    红色标记的区域是Tabula检测到表的原始文件的一部分。 在此步骤中,数据识别已正确捕获。 所有表都被检测到,无关元素不会扭曲结果。

    But if we go further, we will see that the first row of the first and last rows of the last two tables is missing:

    但是,如果走得更远,我们将看到最后两个表的第一行和最后一行的第一行丢失了:

    Image for post
    Tabula’s Lattice method: preview of extracted tabular data
    Tabula的Lattice方法:预览提取的表格数据

    Tabula offers two options: two data extraction methods. The automatic detection method is Lattice. The result of its usage you can see above. If we try Stream, results become better; all data is extracted correctly without missing rows:

    Tabula提供了两种选择:两种数据提取方法。 自动检测方法是莱迪思。 您可以在上面看到其使用结果。 如果尝试Stream ,结果会更好; 正确提取所有数据而不会丢失行:

    Image for post
    Tabula’s Stream method: preview of extracted tabular data
    Tabula的Stream方法:预览提取的表格数据

    But using the Stream method, we face another problem: cells with multiline text are split into multiple table rows. It seems this variant is the best that we can get from Tabula.

    但是使用Stream方法,我们面临另一个问题:具有多行文本的单元格被拆分为多个表行。 看来这种变形是我们可以从Tabula获得的最好的变形。

    Summary: Tabula’s automatic detection method is not the best choice, so I don’t recommend relying on it. Both recognition methods provided by this tool have their own disadvantages. While data loss looks unacceptable in any case, split rows can be returned to their original state with additional processing — manually or with the script’s help.

    简介 :Tabula的自动检测方法不是最佳选择,因此我不建议依赖它。 此工具提供的两种识别方法都有其自身的缺点。 尽管在任何情况下数据丢失看起来都是不可接受的,但可以通过手动或在脚本的帮助下进行额外的处理,将拆分的行恢复为原始状态。

    PDFTron (PDFTron)

    PDFTron is software with multiple basic and advanced features that facilitate the manipulation of PDFs. Tool overview:

    PDFTron是具有多种基本和高级功能的软件,可简化对PDF的操作。 工具概述:

    • Type of software available: desktop app, web browser app, mobile app

      可用软件类型:桌面应用程序,Web浏览器应用程序,移动应用程序
    • Platforms: Android, iOS, Windows, Linux, MacOS

      平台:Android,iOS,Windows,Linux,MacOS
    • Terms of use: free trial period, pricing for licensing starts at $4000 annually

      使用条款:免费试用期,许可的起价为每年4000美元
    • Supported output formats: MS Word, SVG, HTML

      支持的输出格式:MS Word,SVG,HTML

    After uploading our sample file and parsing data from it via PDFTron, we got the following output:

    在上传示例文件并通过PDFTron解析了其中的数据之后,我们得到以下输出:

    Image for post
    PDFTron: the result of detection of tables in the sample document
    PDFTron:样本文档中表格的检测结果

    Red rectangles show the borders of detected tables. The number of tables and tabular data is recognized correctly, but headers of the third and fourth tables are captured as the table elements.

    红色矩形显示检测到的表格的边框。 可以正确识别表和表格数据的数量,但是将第三和第四表的标题捕获为表元素。

    If we convert the original PDF into HTML format using PDFTron, we’ll see that the headers named ‘CATEGORY 2’ and ‘CATEGORY 3’ are included as separate cells inside the table. Also, there are bugs with merged cells of the first table: the last two columns are merged as a larger one, and the second line of text is separated into a separate cell.

    如果使用PDFTron将原始PDF转换为HTML格式,则会看到名为“ CATEGORY 2”和“ CATEGORY 3”的标头作为单独的单元格包含在表中。 此外,第一个表的合并单元格也存在错误:最后两列合并为较大的单元格,第二行文本被分隔为单独的单元格。

    Image for post
    PDFTron: preview of extracted tabular data
    PDFTron:预览表格数据的预览

    Summary: In the output document we can see a piece of non-tabular data incorrectly included in the extraction result. It’s not a big problem since it can be purged after processing, manually, or with the script’s help. Also, I will not recommend this tool in cases when you have a lot of merged cells — they might be messed up.

    简介:在输出文档中,我们可以看到提取结果中错误地包含了一段非表格数据。 这不是一个大问题,因为可以在处理后,手动或在脚本的帮助下清除它。 另外,如果您有很多合并的单元格,则我不推荐使用此工具,因为它们可能会弄糟。

    亚马逊Textract (Amazon Textract)

    Amazon Textract is a service that automatically extracts text and data from scanned documents that go beyond simple optical character recognition (OCR) to identify, understand, and extract data from forms and tables. Tool overview:

    Amazon Textract是一项服务,可以自动从扫描的文档中提取文本和数据,而不仅仅是简单的光学字符识别(OCR)来识别,理解和提取表单和表格中的数据。 工具概述:

    • Type of software available: web application

      可用软件类型:Web应用程序
    • Platforms: any modern web browser, all processing goes ‘in the Cloud’

      平台:任何现代的Web浏览器,所有处理都在“云端”进行
    • Terms of use: several models (free, monthly subscriptions, cost-per-page model)

      使用条款:多种模式(免费,每月订阅,每页成本模式)
    • Supported output formats: raw JSON, JSON for each page in the document, text, key/values exported as CSV, tables exported as CSV.

      支持的输出格式:原始JSON,文档中每个页面的JSON,文本,以CSV格式导出的键/值,以CSV格式导出的表。

    After uploading our sample file and parsing data from it via Amazon Textract, we got the following result:

    在上传示例文件并通过Amazon Textract解析了其中的数据之后,我们得到了以下结果:

    Image for post
    Image for post
    Amazon Textract: the result of detection of tables in the sample document
    Amazon Textract:示例文档中表的检测结果

    Zones painted in gray are parts of the original file where Amazon Textract detected tables. As you can see, it didn’t recognize the first table on the page, detected two separate tables — the second and the third — as a single one, and also messed up the order of tables on the page.

    灰色区域是Amazon Textract检测到表的原始文件的一部分。 如您所见,它无法识别页面上的第一个表,将两个单独的表(第二个和第三个表)检测为单个表,并且还弄乱了页面上表的顺序。

    Regarding the data inside the cells, the extraction result is quite satisfying with some exceptions:

    关于单元内的数据,提取结果非常令人满意,但有一些例外:

    • Missing the data of the first table in the extraction result

      提取结果中缺少第一个表的数据
    • Header string ‘CATEGORY 3 is included as a part of table in the extraction result

      标头字符串“ CATEGORY 3”作为表的一部分包含在提取结果中
    Image for post
    Image for post
    Amazon Textract: preview of extracted tabular data
    Amazon Textract:预览表格数据的预览

    Summary: Amazon Textract looks to be the less suitable tool for data extraction applied to this particular case. A large amount of data loss, messed order of tables, and non-tabular data in the output document. The main advantage of Amazon Textract compared to all other tools is OCR, so that you can extract tabular data from images or image-based PDFs. In the case of text-based PDF, I would recommend choosing another tool.

    简介: Amazon Textract似乎不太适合应用于此特定案例的数据提取工具。 输出文档中大量数据丢失,表顺序混乱以及非表格数据。 与所有其他工具相比,Amazon Textract的主要优势是OCR,因此您可以从图像或基于图像的PDF中提取表格数据。 对于基于文本的PDF,我建议选择其他工具。

    Here is the first part of the article ‘How to Extract Tabular Data from PDF. In the second part, which is coming soon, we will analyze three more popular solutions for extracting and converting data from PDF and prepare a big сomparison table where each tool is rated according to the specific criteria. Follow UpsilonIT’s blog not to miss the great content!

    这是文章“如何从PDF提取表格数据”的第一部分。 即将推出 的第二部分中 ,我们将分析另外三种从PDF提取和转换数据的流行解决方案,并准备 一张巨大的比较表 ,其中每个工具均根据特定标准进行评级。 关注UpsilonIT的博客,不要错过精彩的内容!

    翻译自: https://medium.com/@upsilon_it/how-to-extract-tabular-data-from-pdf-part-1-16cc3a29fcfa

    怎么提取pdf中的表格数据

    展开全文
  • 详细说明如何利用python对文本的中文、英文、数字等进行提取,可以供表格处理使用,可以通过进一步的函数的定义处理整个excel或者txt文档。
  • 有时候EXCEL表格内有许多内容都连在一起,想要一个个的分开又很麻烦,今天就来教大家一种,快速把表格内的内容分开的方法,一起学习一下吧。工具/材料EXCEL操作方法01打开需要分开的数据表格,本次操作以歌词为例,...
  • 若依 在需要隐藏的表格字段上添加 :show-voerflow-tooltip="true" 即可
  • Python+Vue+Django前后端分离项目实战

    万人学习 2020-02-12 09:38:05
    项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的使用、在Django实现针对数据的增删改查的接口、在Vuejs实现前端增删改查的调用、实现文件的上传、实现表格的分页、实现...
  • 一个表格拆分二个表格Often, you need to split the content of a cell in your spreadsheet that is separated by a comma or space, such as the first and last names of a contact. Luckily, Google Sheets ...
  • 本篇主要解释了如何在web建立表格设置表格的大小,单元格宽高、背景色以及表格内字体的大小 提示:以下是本篇文章正文内容,下面案例可供参考 一、如何插入表格 由于关于web网页制作的软件多种多样
  • 话题:excel表格中怎么合计一行的数字(数字里面带有汉字)回答:这个可以设置单元格自定义格式0"汉字"或"汉字"0,计算时可以直接使用公式合计。话题:excel 同一行 有数字 有汉字 最后合计的时候 要合计汉字...
  • 不隐藏表格内容渲染...大多数助手在某种程度上也这样做 不会对程序员(或设计师)隐藏任何 HTML 渲染 很少有例外:用于编辑集合名称的隐藏字段,例如“Collection.Index” 样本 这是一个示例TableTemplateFor ... 它...
  • OpenCV—Python 表格提取

    千次阅读 2019-06-17 21:03:37
    表格提取的OpenCV-python实现,思路参考https://blog.csdn.net/asiwxy/article/details/83063432 import cv2 import os import numpy as np from imutils.perspective import four_point_transform def get_img...
  • 自动适配宽度:表格的优势主要体现在表格的自动适配方面,一般数据长度比较统一的情况下,不设置单元格宽度,单元格会根据其内容自动适配宽度。  b.不定高垂直居中:一般垂直居中设置元素高度和行高相等就能解决,...
  • 如下图; A1:B2这区域是合并单元格 怎么把这合并的单元格取消合并,还原四个单元格? 首先,鼠标点下合并区域;选中它, 再点开始选项卡的对齐方式这一组的合并图标, 如下图所示。.....
  • 如何设置Excel表格的横向排序功能

    千次阅读 2021-07-27 03:01:46
    首先,请大家在自己的电脑找到【Excel】图标,点击进入主界面,然后将目标表格打开。2. 第二步,接下来,请大家将想横向排序的单元格数据选中。3. 第三步,此时请点击箭头所指的【数据】选项,然后点击【排序和...
  • 我们在利用WPS表格和Excel进行...如何拆分单元格内的文本和数字我们可以看到图片表格中有A列单元格中都包含文本和数字两种内容。要拆分文本和数字,我们首先了解下面几个函数。要注意的是,在计算机存储,一...
  • word表格标题和表格如何不分开

    千次阅读 2020-09-18 11:48:23
    选中表格标题→段落→换行和分页→与下段同页、段不分页
  • 在制作 Word 文档过程,偶尔会遇到这样一种情况,就是要在两张或多张无缝表格之间插入文字,由于输入文字前必须插入光标,恰恰在无缝表格之间不容易插入光标,应该怎么办呢?毫无疑问把表格分离,至于如何分离以及...
  • 选种表格右键——表格属性——行——勾选“允许跨页断行”。 转载于:https://blog.51cto.com/xsh2009/1372221
  • 本文从三篇表格识别领域的精选论文出发,深入分析了深度学习在表格识别任务...人工处理表格的方式存在很多问题,一是,由于表格数量大,编辑过程经常更新,不同的表格中可能写入了相同的内容,对这些表格进行手动交.
  • datadrivencv的目标是通过将条目视为数据,通过将内容与输出分离来减轻维护CV的负担。 安装 来自的开发版本,具有: # install.packages("devtools") devtools :: install_github( " nstrayer/datadrivencv " ) ...
  • LEFT(A1,n)对A1中内容进行截取,从左边第一个字符开始截取,截取指定的长度; RIGHT(A1,n)从右边开始截取n个字符; LEN(A1) 返回A1字符串的字符数,英文字符都算1个; LENB(A1) 返回A1字符串的字符数,中文按2个...
  • 在日常开发工作,总是遇到通过异步请求数据并用表格展示的的场景,看到很多同事解决此类问题通常采用拼字符串的形式,如: //js代码段...........var td1="B000123"; var td2="张三" var td3="2017-09-17"; var td...
  • web初探-css-设置表格样式

    千次阅读 2019-08-04 00:21:15
    Border-collapse:设置边框分离,合并 默认是 separate(分离) collapse 合并; Border-spacing :设置单元格的间距; Padding:设置单元格内容和边框之间的距离; 设置表格的宽度 Table-layout 默认 auto 自动方式,...
  • iView表格中输入框验证问题

    千次阅读 2019-11-21 19:36:47
    需求:  验证前两行的姓名不能为空; 解决方案: 判断是否前两行,如是则增加校验规则;...如需在Input输入框前方加 * 必填提示,则只需在,label内容最好为空字符串。 代码实现: <template> /...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,005
精华内容 20,002
关键字:

如何分离表格中的内容