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

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

 更新時間: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("開始處理")
 
    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}行條碼格式不正確,跳過: {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},錯誤: {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"保存文件失敗,可能文件被打開: {new_file}")
 
    if os.path.exists('barcode_temp'):
        logging.info("刪除臨時文件")
        delete_files('barcode_temp')
 
    logging.info("完成處理!")
 
 
if __name__ == "__main__":
    excel_path = 'D:\\temp\\圖書清單.xlsx'
    insert_barcodes_to_excel(excel_path, 1, "B")

三、說明

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

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

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

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

相關(guān)文章

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

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

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

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

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

    使用python+requests+pytest實現(xiàn)接口自動化

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

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

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

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

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

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

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

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

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

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

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

    Python實現(xiàn)一鍵自動分類管理文件

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

    python matplotlib庫直方圖繪制詳解

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

最新評論

乐平市| 方正县| 恩施市| 陇南市| 冀州市| 久治县| 武穴市| 沈丘县| 南通市| 广元市| 浦江县| 香港| 文水县| 山东| 皋兰县| 福建省| 沁源县| 柯坪县| 惠东县| 齐河县| 太仆寺旗| 满城县| 崇左市| 抚远县| 兰考县| 宝应县| 黎平县| 闻喜县| 罗平县| 永定县| 宁远县| 沧源| 胶南市| 布尔津县| 三原县| 定南县| 兴海县| 乐安县| 武汉市| 梁河县| 安多县|