最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Excel操作之將ISBN轉(zhuǎn)條形碼

 更新時(shí)間:2025年06月22日 09:35:11   作者:晨曦之光Wing  
這篇文章主要為大家詳細(xì)介紹了Python Excel操作中如何將ISBN轉(zhuǎn)條形碼功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、效果

原始文件:

輸出文件:

二、代碼

import os
import logging
from openpyxl import load_workbook
from openpyxl.drawing.image import Image as ExcelImage
from barcode import EAN13
from barcode.writer import ImageWriter
 
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
 
 
def delete_files(directory):
    file_list = os.listdir(directory)
    for file in file_list:
        file_path = os.path.join(directory, file)
        if os.path.isfile(file_path):
            os.remove(file_path)
 
 
def generate_barcode_image_with_text(barcode_str, output_path_without_ext):
    # Generate barcode image without text
    ean = EAN13(barcode_str, writer=ImageWriter())
    saved_path = ean.save(output_path_without_ext)
 
    return saved_path
 
 
def insert_barcodes_to_excel(excel_file, ISBNCol, imgCol):
    logging.info("開(kāi)始處理")
 
    if not os.path.exists('barcode_temp'):
        os.makedirs('barcode_temp')
 
    wb = load_workbook(excel_file)
    ws = wb.active
    logging.info(f"加載工作表: {ws.title}")
 
    img_height_in_points = 45  # 你設(shè)置的圖片高度,單位是磅,1磅約等于1.33像素
 
    for row in range(2, ws.max_row + 1):
        barcode_cell = ws.cell(row=row, column=ISBNCol)
        barcode_str = str(barcode_cell.value).strip()
        if not barcode_str or len(barcode_str) != 13 or not barcode_str.isdigit():
            logging.warning(f"第{row}行條碼格式不正確,跳過(guò): {barcode_str}")
            continue
 
        img_path_no_ext = os.path.join('barcode_temp', f'barcode_{barcode_str}')
        try:
            img_path = generate_barcode_image_with_text(barcode_str, img_path_no_ext)
        except Exception as e:
            logging.error(f"生成條碼失敗,行{row},條碼{barcode_str},錯(cuò)誤: {e}")
            continue
 
        img_for_excel = ExcelImage(img_path)
        img_for_excel.width = 180
        img_for_excel.height = 60
 
        img_cell = f'{imgCol}{row}'
 
        # # 設(shè)置列寬
        ws.column_dimensions[imgCol].width = img_for_excel.width * 0.15
        # # 設(shè)置行高
        ws.row_dimensions[row].height = img_for_excel.height
 
        ws.add_image(img_for_excel, img_cell)
 
        # 調(diào)整當(dāng)前行高,避免圖片重疊
        current_height = ws.row_dimensions[row].height
        if current_height is None or current_height < img_height_in_points:
            ws.row_dimensions[row].height = img_height_in_points
 
        # logging.info(f"插入條碼圖片到 {img_cell} 并調(diào)整行高")
 
    new_file = os.path.splitext(excel_file)[0] + '_with_barcodes.xlsx'
    try:
        wb.save(new_file)
        logging.info(f"保存新文件: {new_file}")
    except PermissionError:
        logging.error(f"保存文件失敗,可能文件被打開(kāi): {new_file}")
 
    if os.path.exists('barcode_temp'):
        logging.info("刪除臨時(shí)文件")
        delete_files('barcode_temp')
 
    logging.info("完成處理!")
 
 
if __name__ == "__main__":
    excel_path = 'D:\\temp\\圖書(shū)清單.xlsx'
    insert_barcodes_to_excel(excel_path, 1, "B")

三、說(shuō)明

1、insert_barcodes_to_excel參數(shù)1:原始Excel表格文件絕對(duì)路徑。

2、insert_barcodes_to_excel參數(shù)2:ISBN所在列,數(shù)字格式。例如:ISBN在A列則輸入1,在B列則輸入2。

3、insert_barcodes_to_excel參數(shù)3:生成的條形碼需要放在第幾列,大寫(xiě)字母格式。例如:需要放在第二列則輸入B,第三列則輸入C。

到此這篇關(guān)于Python Excel操作之將ISBN轉(zhuǎn)條形碼的文章就介紹到這了,更多相關(guān)Python ISBN轉(zhuǎn)條形碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python查找特定名稱文件并按序號(hào)、文件名分行打印輸出的方法

    python查找特定名稱文件并按序號(hào)、文件名分行打印輸出的方法

    這篇文章主要介紹了python查找特定名稱文件并按序號(hào)、文件名分行打印輸出的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python 實(shí)現(xiàn)黑客帝國(guó)中的字符雨的示例代碼

    Python 實(shí)現(xiàn)黑客帝國(guó)中的字符雨的示例代碼

    這篇文章主要介紹了Python 實(shí)現(xiàn)黑客帝國(guó)中的字符雨的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化

    使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化

    這篇文章主要介紹了使用python+requests+pytest實(shí)現(xiàn)接口自動(dòng)化,在當(dāng)前互聯(lián)網(wǎng)產(chǎn)品迭代頻繁的背景下,回歸測(cè)試的時(shí)間越來(lái)越少,但接口自動(dòng)化測(cè)試因其實(shí)現(xiàn)簡(jiǎn)單、維護(hù)成本低,容易提高覆蓋率等特點(diǎn),越來(lái)越受重視,需要的朋友可以參考下
    2023-08-08
  • Python Opencv提取圖片中某種顏色組成的圖形的方法

    Python Opencv提取圖片中某種顏色組成的圖形的方法

    這篇文章主要介紹了Python Opencv提取圖片中某種顏色組成的圖形的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python使用dir函數(shù)實(shí)現(xiàn)快速定位模塊詳解

    Python使用dir函數(shù)實(shí)現(xiàn)快速定位模塊詳解

    在Python的探索之旅中,dir()函數(shù)就像一把萬(wàn)能的鑰匙,能瞬間揭示對(duì)象的內(nèi)部結(jié)構(gòu),下面小編就和大家詳細(xì)介紹一下Python使用dir函數(shù)實(shí)現(xiàn)快速定位模塊的具體方法和常見(jiàn)問(wèn)題解決
    2026-06-06
  • Python lxml模塊的基本使用方法分析

    Python lxml模塊的基本使用方法分析

    這篇文章主要介紹了Python lxml模塊的基本使用方法,結(jié)合實(shí)例形式分析了Python安裝與使用lxml模塊常見(jiàn)操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • pandas數(shù)據(jù)分列實(shí)現(xiàn)分割符號(hào)&固定寬度

    pandas數(shù)據(jù)分列實(shí)現(xiàn)分割符號(hào)&固定寬度

    數(shù)據(jù)分列在數(shù)據(jù)處理中很常見(jiàn),數(shù)據(jù)分列一般指的都是字符串分割,本文主要介紹了pandas數(shù)據(jù)分列實(shí)現(xiàn)分割符號(hào)&固定寬度,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • python使用opencv實(shí)現(xiàn)馬賽克效果示例

    python使用opencv實(shí)現(xiàn)馬賽克效果示例

    這篇文章主要介紹了python使用opencv實(shí)現(xiàn)馬賽克效果,結(jié)合實(shí)例形式分析了Python使用cv2模塊操作圖片實(shí)現(xiàn)馬賽克效果的相關(guān)技巧,需要的朋友可以參考下
    2019-09-09
  • Python實(shí)現(xiàn)一鍵自動(dòng)分類管理文件

    Python實(shí)現(xiàn)一鍵自動(dòng)分類管理文件

    經(jīng)常雜亂無(wú)章的文件夾會(huì)讓我們找不到所想要的文件,所以本文小編特意為大家介紹了如何制作一個(gè)可視化GUI界面,通過(guò)輸入路徑一鍵點(diǎn)擊實(shí)現(xiàn)文件分門(mén)別類的歸檔,希望對(duì)大家有所幫助<BR>
    2024-01-01
  • python matplotlib庫(kù)直方圖繪制詳解

    python matplotlib庫(kù)直方圖繪制詳解

    這篇文章主要介紹了python matplotlib庫(kù)直方圖繪制詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

白玉县| 株洲市| 建宁县| 元氏县| 祁门县| 海原县| 宁安市| 蕲春县| 连州市| 栾川县| 河东区| 平度市| 三门峡市| 大城县| 巨鹿县| 定日县| 水城县| 本溪| 浮梁县| 芜湖市| 桃源县| 宜良县| 尼玛县| 旌德县| 康乐县| 常德市| 临海市| 漳州市| 高雄市| 扎赉特旗| 湄潭县| 枣强县| 文昌市| 天峻县| 九龙城区| 民乐县| 错那县| 临西县| 凤翔县| 翁牛特旗| 苗栗县|