扶贫填表

main.py

import pandas as pd
from lib.func import copy_and_rename_file, modify_cell_value


def read_income_data(file_path):
    df = pd.read_excel(file_path, sheet_name="收入明细", skiprows=4, index_col=0, dtype=str)
    # df = df[:-1]  # 去除最后一行数据
    row_lists = df.values.tolist()
    return row_lists


# 请将以下路径替换为您的实际文件路径
file_path = "俩表对比.xls"
data_lists = read_income_data(file_path)
print(data_lists)

for row_list in data_lists:
    source_file = "模板.xlsx"
    destination_folder = "生成"
    new_file_name = f"{row_list[0]}.xlsx"

    copy_and_rename_file(source_file, destination_folder, new_file_name)

    file_path = f"生成/{row_list[0]}.xlsx"
    sheet_name = "人均收入测算表"
    cell_reference = "A2"
    new_value = f"户主:     {row_list[0]}\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000\u3000户类型:脱贫户□   防贫监测户□\n \n当前家庭人口数: {row_list[1]}\u3000\u3000\u3000年度家庭人口数  {row_list[1]} \u3000\u3000\u3000\u3000\u3000\u3000调查时间:2024年\u3000\u3000月\u3000\u3000日"
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 公益岗
    cell_reference = "B5"
    new_value = row_list[18]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 最低生活保障金
    cell_reference = "B15"
    new_value = row_list[3]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 特困人员救助供养金
    cell_reference = "B16"
    new_value = row_list[4]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 养老金或离退休金
    cell_reference = "B17"
    new_value = row_list[5]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 计划生育金
    cell_reference = "B22"
    new_value = row_list[6]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 生态补偿金
    cell_reference = "B23"
    new_value = row_list[7]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 产业奖补
    cell_reference = "B24"
    new_value = row_list[10]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 交通补助
    cell_reference = "B25"
    new_value = row_list[11]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 孝心养老奖补
    cell_reference = "B27"
    new_value = row_list[13]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 残疾人补贴
    cell_reference = "D6"
    new_value = row_list[8]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 转移性收入
    cell_reference = "D8"
    new_value = row_list[22]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)
    # 非确权到户的资产收益分红
    cell_reference = "D9"
    new_value = row_list[15]
    modify_cell_value(file_path, sheet_name, cell_reference, new_value)

lib\func.py

import shutil
import os


def copy_and_rename_file(source_file, destination_folder, new_file_name):
    """
    复制文件到指定文件夹并以新名称命名

    参数:
    source_file (str):源文件的路径
    destination_folder (str):目标文件夹的路径
    new_file_name (str):新的文件名

    返回:
    None
    """
    # 检查目标文件夹是否存在,如果不存在则创建
    if not os.path.exists(destination_folder):
        os.makedirs(destination_folder)

    # 构建目标文件路径
    destination_file = os.path.join(destination_folder, new_file_name)

    # 复制文件
    shutil.copy(source_file, destination_file)

# source_file = "模板.xlsx"
# destination_folder = "test"
# new_file_name = "123.xlsx"
#
# copy_and_rename_file(source_file, destination_folder, new_file_name)


def modify_cell_value(file_path, sheet_name, cell_reference, new_value):
    workbook = load_workbook(file_path)
    sheet = workbook[sheet_name]
    sheet[cell_reference] = new_value
    workbook.save(file_path)


from openpyxl import load_workbook
from openpyxl.styles import Font


def underline_partial_text(file_path, sheet_name, cell_reference, start_index, end_index):
    workbook = load_workbook(file_path)
    sheet = workbook[sheet_name]
    cell = sheet[cell_reference]

    # 获取原始文本
    original_text = cell.value

    # 拆分文本为三部分:前缀、要加下划线的部分、后缀
    prefix = original_text[:start_index]
    underlined_part = original_text[start_index:end_index]
    suffix = original_text[end_index:]

    # 创建新的单元格内容,将下划线部分用特殊标记包裹
    new_text = prefix + f"__{underlined_part}__" + suffix

    # 设置单元格的值为新的文本
    cell.value = new_text

    # 定义一个字体样式,用于识别特殊标记并添加下划线
    underline_font = Font(underline='single')

    def set_underline(cell, text):
        if text.startswith("__") and text.endswith("__"):
            cell.font = underline_font
            return text[2:-2]
        return text

    # 遍历单元格内的每个字符
    new_value = ""
    for char in new_text:
        new_value += set_underline(cell, char)

    cell.value = new_value

    workbook.save(file_path)

VBA(添加下划线),有意思的是给EXCEL同一个单元格中的部分文字添加下划线python竟然无法实现,这里智能使用VBA了

Sub UnderlinePartInAllWorkbooks()
    Dim fso As Object
    Dim folder As Object
    Dim file As Object
    Dim wb As Workbook
    Dim ws As Worksheet

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder("E:\WorkPro\扶贫填表\生成")  '修改为您的文件夹路径

    For Each file In folder.Files
        If Right(file.Name, 5) = ".xlsx" Or Right(file.Name, 4) = ".xls" Then
            Set wb = Workbooks.Open(file.Path)
            Set ws = wb.Sheets(1)
            With ws.Range("A2").Characters(4, 12).Font  '户名
             .Underline = True
            End With
            With ws.Range("A1").Characters(1, 3).Font  '五指山
             .Underline = True
            End With
            With ws.Range("A2").Characters(58, 3).Font  '当前家庭人口数
             .Underline = True
            End With
            With ws.Range("A2").Characters(71, 3).Font  '庭人口数
             .Underline = True
            End With
            wb.Close SaveChanges:=True
        End If
    Next file
End Sub
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容