<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
不管是錄入資訊時需要用掃碼器掃碼錄入、核對資訊時用於掃碼識別,還是有別的生成條形碼的需要,那我們如何把表格中的數位、文字列快速生成條形碼圖片呢?這在 SeaTable 表格中用 Python 指令碼就可以輕鬆實現,即把表格中的某一個欄位,如身份證號、電話號轉換成相應的條形碼,並儲存到圖片列中。例如,你有如下一張表格,裡面有電話號碼和條碼圖片兩列,需要把每一行的電話號碼轉換成條碼,並傳到條碼圖片(BarcodeImage)列中去。怎麼實現呢?
首先需要在表格中,點選“指令碼”功能,新建一個 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條形碼的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45