Excel 文字字元出現次數分析器

想把 Excel 內出現的生難國字挑出來,想到可以用 Python 來處理這個問題 希望出現次數最少的就是使用率比較少的國字
import openpyxl
from collections import Counter
from datetime import datetime

def count_characters(text):
    # 使用 Counter 計算每個字元的出現次數
    return Counter(text)

def process_excel_file(file_path):
    # 讀取 Excel 文件
    wb = openpyxl.load_workbook(file_path)
    
    # 創建一個 Counter 來統計所有字元的出現次數
    total_counter = Counter()

    # 遍歷每個工作表
    for sheet_name in wb.sheetnames:
        sheet = wb[sheet_name]
        
        # 遍歷每個儲存格
        for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column, values_only=True):
            for cell_value in row:
                if cell_value is not None and isinstance(cell_value, str):
                    # 更新總計字元的出現次數
                    total_counter.update(count_characters(cell_value))

    # 關閉 Excel 文件
    wb.close()

    return total_counter

def save_result_to_excel(result_counter):
    # 獲取現在的日期和時間
    current_datetime = datetime.now().strftime("%Y%m%d_%H%M%S")

    # 創建結果 Excel 文件
    result_wb = openpyxl.Workbook()
    result_sheet = result_wb.active

    # 寫入標題列
    result_sheet.append(["字元", "出現次數"])

    # 寫入結果數據
    for char, count in sorted(result_counter.items(), key=lambda x: x[1]):
        result_sheet.append([char, count])

    # 儲存結果 Excel 文件
    result_filename = f"出現次數_{current_datetime}.xlsx"
    result_wb.save(result_filename)

    # 關閉結果 Excel 文件
    result_wb.close()

    print(f"結果已保存為 {result_filename}")

if __name__ == "__main__":
    # 詢問 Excel 來源位置
    excel_file_path = input("請輸入 Excel 來源位置: ")

    # 處理 Excel 文件並獲取統計結果
    result_counter = process_excel_file(excel_file_path)

    # 保存結果到 Excel 文件
    save_result_to_excel(result_counter)

小泉

喜愛用文字說明自己眼中所見的一切

張貼留言

較新的 較舊

نموذج الاتصال