Python+SeaTable实现生成条形码图片并写入表格

目录
  • 在 SeaTable 中用 Python 生成条形码
    • 新建 Python 脚本
    • 写入代码
    • 运行脚本
    • 设置条码参考
  • 应用场景
    • 打印条形码用于粘贴答题卡
    • 设计准考证页面用于识别信息
  • 总结

不管是录入信息时需要用扫码器扫码录入、核对信息时用于扫码识别,还是有别的生成条形码的需要,那我们如何把表格中的数字、文本列快速生成条形码图片呢?这在 SeaTable 表格中用 Python 脚本就可以轻松实现,即把表格中的某一个字段,如身份证号、电话号转换成相应的条形码,并存储到图片列中。例如,你有如下一张表格,里面有电话号码和条码图片两列,需要把每一行的电话号码转换成条码,并传到条码图片(BarcodeImage)列中去。怎么实现呢?

在 SeaTable 中用 Python 生成条形码

新建 Python 脚本

首先需要在表格中,点击“脚本”功能,新建一个 Python 脚本。

写入代码

然后在脚本中写入如下代码(如果需要线下运行,需要安装Python-barcode 依赖包)

import os
import time
import barcode
from barcode.writer import ImageWriter
from seatable_api import Base, context

api_token = context.api_token or "859ad340d9a2b11b067c11f43078992e14853af5"
server_url = context.server_url or "https://cloud.seatable.cn"

TEXT_COL = "PhoneNum"  # 需要转换成条码的列
BARCODE_IMAGE_COL = "BarcodeImage" # 图片列, 存储条码
TABLE_NAME = 'Table1'
BARCODE_TYPE = 'code128'

CUSTOM_OPTIONS = {
    "module_width": 0.2,       # 单个条纹的最小宽度, mm
    "module_height": 15.0,     # 条纹带的高度, mm
    "quiet_zone": 6.5,         # 图片两边与首尾两条纹之间的距离, mm
    "font_size": 10,           # 条纹底部文本的大小,pt
    "text_distance": 5.0,      # 条纹底部与条纹之间的距离, mm
}

CODE = barcode.get_barcode_class(BARCODE_TYPE)
base = Base(api_token, server_url)
base.auth()

def get_time_stamp():
    return str(int(time.time()*100000))

for row in base.list_rows(TABLE_NAME):
    # 如果图片列中已有内容, 则跳过
    if row.get(BARCODE_IMAGE_COL):
        continue
    # 如果电话号码列为空,则跳过
    if not row.get(TEXT_COL):
        continue

    try:
        row_id = row.get('_id')
        msg = str(row.get(TEXT_COL))

        # 生成条码对象
        code_img = CODE(msg, writer=ImageWriter())
        save_name = "%s_%s" % (row_id, get_time_stamp())

        # 保存为图片并暂存
        file_name = code_img.save("/tmp/%s" % save_name, options=CUSTOM_OPTIONS)

        # 将图片上传至 Base 表格
        info_dict = base.upload_local_file(file_name, name=None, file_type='image', replace=True)
        img_url = info_dict.get('url')
        row[BARCODE_IMAGE_COL] = [img_url]
        base.update_row('Table1', row_id, row)

        # 移除暂存文件
        os.remove(file_name)
    except Exception as error:
        print("error occured during barcode generate", error)
        continue

运行脚本

一键点击运行按钮,脚本运行完成后,表格中的电话号就会自动生成相应的条形码,并保存到条形码图片列。方便快捷。

设置条码参考

此外,如果你还需要设置条码、条纹的长度,以及文本的长度等,可以通过调节脚本中的 CUSTOM_OPTIONS中的参数来实现,以下是一些例子:

默认模式

module_width 1mm

module_height 5mm

quiet_zone 0.5mm

font_size 6pt

text_distance 2

应用场景

在前面完成了把文本列的值转换成条形码,例如,把一长串准考证号转换成条形码图片,下面来看如何应用。

打印条形码用于粘贴答题卡

当把每个学生的准考证号转换成条形码图片后,考务工作人员点击条形码图片列,可以下载全部并能使用 {列名} 引用字段内容给所有条形码自动命名,方便后续工作。

设计准考证页面用于识别信息

把学生姓名、照片、准考证条形码等信息设计成准考证页面,用于扫码读取、核对、录入信息等需要,是比较常见的考务工作和使用场景。这种数据的记录、处理、应用等工作在 SeaTable 表格上就可以快速完成。

在表格上添加页面设计插件,就可以自定义设计多个页面模板。页面可以拖入行记录中的文本、数字、图片等字段信息。设计完并保存后,可以一键打印当前行记录页面或打印所有页面,也可以设置使用 {字段名} 引用字段的内容,并一键下载为PDF。

总结

通过以上的例子,是不是又发现了 SeaTable 在使用上的更多灵活性和场景呢,但是条码的生成和转换还需要注意一个问题,一维条码天生是不支持汉字转换的,只支持基本的数字、字母和一些字符的转换,不过这对于日常业务已经基本足够了。总之,基于 SeaTable 丰富的功能,再结合 Python 脚本来使用,能帮助我们实现很多意想不到的效果,高效率低成本落地应用,真的是一款值得拥有和分享的宝藏软件工具。

以上就是Python+SeaTable实现生成条形码图片并写入表格的详细内容,更多关于Python SeaTable条形码的资料请关注我们其它相关文章!

(0)

相关推荐

  • python中扫描条形码和二维码的实现代码

    简单说明,代码太难懂,先做此记录留待来日在看 步骤: 1,pip install pyzbar安装好该模块.pyzbar模块是Python一个开源库用于扫描和识别二维码信息. 2,随便在网上找好两张截图 3, from pyzbar import pyzbar import matplotlib.pyplot as plt import cv2 #条形码定位及识别 def decode(image,barcodes): #循环监测条形码 for barcode in barcodes: #提取条

  • 通过python扫描二维码/条形码并打印数据

    需提前安装好pyzbar和opencv-python库(博主的电脑安装opencv-python库比较麻烦,但大部分都不会出现该问题) 安装方法:打开命令框输入 pip install pyzbar/opencv- python 接下来介绍代码 #首先导入本次所需要的库,最后一个csv是Python自带的csv表格操作库,这里我们需要把我们扫到的二维码信息都存入csv表格里. import cv2 from pyzbar import pyzbar import csv #然后我们设置一个变量,

  • Python+SeaTable实现计算两个日期间的工作日天数

    目录 在 SeaTable 表格上新建 Python 脚本 思路 代码 总结 当我们计算两个日期间的间隔天数时,通常是用结束日期减去开始日期,但在实际的项目管理.任务管理.工作计划等场景中,某些时间段会涉及双休日.法定节假日,甚至还有公司自定义的工作时间安排,所以就需要计算出两个日期间的实际工作日天数.比如一个表格中有多条任务,每条任务都有各自的开始日期.计划结束日期或实际结束日期,那么如何自动计算出两个日期间的实际工作日天数,以便做到精细和量化呢. 此时,万能的 Python 就可以出场了,而

  • python利用elaphe制作二维条形码实现代码

    手机上的二维码识别程序已经做的很好了,"我查查"用起来很不错的 我搜集了几个二维条码生成网站: http://www.morovia.com/free-online-barcode-generator/qrcode-maker.php http://qrencode.sinaapp.com/ http://www.mayacode.com/ 作为一个程序猿,我们也要懂得如何制作二维条形码 python的elaphe模块帮我们解决了问题 复制代码 代码如下: from elaphe im

  • python批量生成条形码的示例

    在工作中,有时会遇见需要将数字转换为条码的问题,每次都需要打开条码转换的网站,一次次的转换后截图,一两个还行,但是当需要转换的数量较多时,就会显得特别麻烦,弄不好还会遗漏或者重复,为了解决这个问题,使用python写了以下脚本,用来解决此问题 1.安装python-barcode库和pillow库 需要导入的python库 import barcode from barcode.writer import ImageWriter 2.将需要转换的条形码数据保存到同级目录下的 EAN.txt 内

  • Python之ReportLab绘制条形码和二维码的实例

    条形码和二维码 #引入所需要的基本包 from reportlab.pdfgen import canvas from reportlab.graphics.barcode import code39, code128, code93 from reportlab.graphics.barcode import eanbc, qr, usps from reportlab.graphics.shapes import Drawing from reportlab.lib.units import

  • Python+SeaTable实现生成条形码图片并写入表格

    目录 在 SeaTable 中用 Python 生成条形码 新建 Python 脚本 写入代码 运行脚本 设置条码参考 应用场景 打印条形码用于粘贴答题卡 设计准考证页面用于识别信息 总结 不管是录入信息时需要用扫码器扫码录入.核对信息时用于扫码识别,还是有别的生成条形码的需要,那我们如何把表格中的数字.文本列快速生成条形码图片呢?这在 SeaTable 表格中用 Python 脚本就可以轻松实现,即把表格中的某一个字段,如身份证号.电话号转换成相应的条形码,并存储到图片列中.例如,你有如下一张

  • C#生成条形码图片的简单方法

    本文实例讲述了C#生成条形码图片的简单方法.分享给大家供大家参考.具体实现方法如下: 实现原理: 其实Windows本身就有一个字体是用来显示条形码的. 只要将数字改为这种字体就变成了条形码. windows字体库下,有如下八种字体可以用来将数字转换成条形码: Code39AzaleaNarrow1 Code39AzaleaNarrow2 Code39AzaleaNarrow3 Code39AzaleaRegular1 Code39AzaleaRegular2 Code39AzaleaWide1

  • 史上最简洁C# 生成条形码图片思路及示例分享

    在网上看到一些人写关于条形码的代码都很长,有的甚至拿来卖,所以查了下资料,希望能对大家有帮助. 我的实现原理是: 其实Windows本身就有一个字体是用来显示条形码的. 只要将数字改为这种字体就变成了条形码. windows字体库下,有如下八种字体可以用来将数字转换成条形码: 复制代码 代码如下: Code39AzaleaNarrow1 Code39AzaleaNarrow2 Code39AzaleaNarrow3 Code39AzaleaRegular1 Code39AzaleaRegular

  • 基于C#生成条形码操作知识汇总附源码下载

    1. 介绍 1.1 条形码 条形码(barcode):是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符. 1.2 条形码分类 可分为一维条形码和二维条形码: 一维条形码:只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息. 二维条形码:在水平和垂直方向的二维空间存储信息的条形码. 1.3 第三方类库:ZXing.Net 1.3.1 说明 ZXing 是一个可生成和读取 1D/2D(1维/2维) 条形码的开源类库.原先是Java版本,后由第三方

  • python生成验证码图片代码分享

    本文实例为大家分享了python生成验证码图片代码,分享给大家供大家参考,具体内容如下 基本上大家使用每一种网络服务都会遇到验证码,一般是网站为了防止恶意注册.发帖而设置的验证手段.其生成原理是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR).下面就详细讲解如何生成验证码. 所需环境 除了配置好的python环境外,还需要配有python中的PIL库,这是python中专门用来处理图片的库.用传统的pip install 方法或者下载源码 python setup.

  • Python生成数字图片代码分享

    本文向大家分享了几段Python生成数字图片的代码,喜欢的朋友可以参考.具体如下: 最终版本 # -*- coding:utf-8 -*- from PIL import Image,ImageFont,ImageDraw,ImageFilter import random import os import time class Code(object): def __init__(self, imgSize=(35,35),\ fontSize=25, bgColor=(255,)*4, fo

  • php生成条形码的图片的实例详解

    php生成条形码的图片的实例详解 因为用户的需要  写了一个条形码:用php生成一个条形码的图片  这个大家应该比我要好很多的吧,在自己项目的根目录下建立一个测试文件(直接把下面的代码放进去运行一下看看,我也是抄袭别人的),在实际的项目中你可以将下面的代码封装到一个公共类文件下的一个函数,然后调用. class testinfo{ function UPCAbarcode($code) { $trans_code = $code; $lw = 2.2; $hi = 40; $Lencode =

  • python生成圆形图片的方法

    本文实例为大家分享了python生成圆形图片的具体代码,供大家参考,具体内容如下 # -*- coding: utf-8 -*- """ __author__= 'Du' __creation_time__= '2018/1/5 9:08' """ import os, math from PIL import Image def circle(): ima = Image.open("ball1.jpg").convert(

  • python实现对文件中图片生成带标签的txt文件方法

    在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): files = os.listdir(dir) files.sort() print '****************' print 'input :',dir print 'start...' listText = open(dir+'\\'+'list.txt','w') for file in f

随机推荐