吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 379|回复: 8
收起左侧

[资源求助] 有没有路过的大佬,土木在线帮忙下载一个图纸模板~

[复制链接]
samniboy 发表于 2026-7-2 11:17
100吾爱币
水泥平屋面光伏组价的基础详图,下载地址:https://ziliao.co188.com/d62766129.html

希望路过的大佬帮忙下载一下,多谢

最佳答案

查看完整内容

https://wormhole.app/Ay6zAO#un3gpVpreM9zb8WU9WodDw 你好,这个增加了选择表头行数和选择文件的功能。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lingchen5 发表于 2026-7-2 11:17
https://wormhole.app/Ay6zAO#un3gpVpreM9zb8WU9WodDw  你好,这个增加了选择表头行数和选择文件的功能。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
samniboy + 1 + 1 热心回复!

查看全部评分

 楼主| samniboy 发表于 2026-7-17 09:39
lingchen5 发表于 2026-7-16 20:21
https://wormhole.app/Ay6zAO#un3gpVpreM9zb8WU9WodDw  你好,这个增加了选择表头行数和选择文件的功能。

文件了两个文件都没通过,希望大佬在修复一下BUG

测试文件地址:

https://wwaqu.lanzoub.com/iTeQO3ww5qed

运行报错显示:











lingchen5 发表于 2026-7-17 10:40
samniboy 发表于 2026-7-17 09:39
文件了两个文件都没通过,希望大佬在修复一下BUG

测试文件地址:

和程序没在同一个文件夹,在一个文件夹就不报错了,你可以先放在同一文件夹下测试一下,看效果可以吗

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
samniboy + 1 + 1 热心回复!

查看全部评分

 楼主| samniboy 发表于 2026-7-17 10:45
lingchen5 发表于 2026-7-17 10:40
和程序没在同一个文件夹,在一个文件夹就不报错了,你可以先放在同一文件夹下测试一下,看效果可以吗

确实是程序文件和处理文件没有放在同一个目录的原因,还是大佬厉害,在次感谢大佬
lingchen5 发表于 2026-7-17 10:52
samniboy 发表于 2026-7-17 10:45
确实是程序文件和处理文件没有放在同一个目录的原因,还是大佬厉害,在次感谢大佬

https://wormhole.app/R8NWWP#65oiz62jVn3QtzxGGl9BgQ   这次可以了,不同文件夹也没问题了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
samniboy + 1 + 1 热心回复!

查看全部评分

 楼主| samniboy 发表于 2026-7-17 10:55
lingchen5 发表于 2026-7-17 10:52
https://wormhole.app/R8NWWP#65oiz62jVn3QtzxGGl9BgQ   这次可以了,不同文件夹也没问题了

测试确实可以,大佬出手,就是不同凡响
lingchen5 发表于 2026-7-17 11:07
samniboy 发表于 2026-7-17 10:55
测试确实可以,大佬出手,就是不同凡响

需要注意,由于你的工资表中的函数也原封不动的复制了,但是文件变化了,导致函数引用的单元格数据完全错误,所以要拆分工资表这种东西,需要提前把函数计算出来的值给复制粘贴成实际值而不是保持函数状态。  

以下是代码,你要有其他需求可以让ai基于这个帮你改。
[Python] 纯文本查看 复制代码
"""根据xlsx第一列数据拆分成新表功能脚本"""

import re
import shutil
from pathlib import Path

import openpyxl,os

# ---
import easygui as g

# 弹出文件选择窗口,让用户选择 Excel 文件
file_path = g.fileopenbox(
    title="请选择导入文件", 
    default="*.xlsx"  # 默认筛选显示 Excel 文件
)

# 如果用户点了“取消”,file_path 会返回 None
if file_path:
    print(f"用户选择的文件路径是:{file_path}")
    
    # 这里就可以使用你的 TEMPLATE_FILE = file_path
else:
    print("用户取消了选择")

TEMPLATE_FILE = str(file_path)
#TEMPLATE_FILE = str(file_path).split(os.sep)[-1]
print(TEMPLATE_FILE)

# ---

# TEMPLATE_FILE = "非通信类导入模板.xlsx"
OUTPUT_DIR = Path("output")
try:
    START_ROW = int(g.enterbox("请输入表头的最后一行数字:"))
    START_ROW+=1
    g.msgbox(f"已设置表头的最后一行为第 {START_ROW-1} 行,数据从第 {START_ROW} 行开始读取。")
except:
    exit()

ILLEGAL_RE = re.compile(r'[\\/:*?"<>|]')


def read_names(template_path: str) -> list[str]:
    """读取模板 A10 开始的所有非空单元格值。"""
    wb = openpyxl.load_workbook(template_path)
    ws = wb.active
    names = []
    for row in range(START_ROW, ws.max_row + 1):
        value = ws.cell(row=row, column=1).value
        if value is not None and str(value).strip() != "":
            names.append(str(value).strip())
    wb.close()
    return names


def clean_copy(filepath: str, name: str) -> None:
    """删除副本中 A9 下方除匹配行外的所有行。"""
    wb = openpyxl.load_workbook(filepath)
    ws = wb.active

    # 找到匹配名称的行号
    match_row = None
    for row in range(START_ROW, ws.max_row + 1):
        value = ws.cell(row=row, column=1).value
        if value is not None and str(value).strip() == name:
            match_row = row
            break

    if match_row is None:
        wb.close()
        raise ValueError(f"在模板 A 列中未找到匹配 '{name}' 的行")

    # 从底部向上删除 A9 下方的行,保留匹配行
    for row in range(ws.max_row, START_ROW-1, -1):
        if row != match_row:
            ws.delete_rows(row)

    wb.save(filepath)
    wb.close()


def main():
    # 检查模板文件
    if not Path(TEMPLATE_FILE).exists():
        print(f"错误: 未找到模板文件 '{TEMPLATE_FILE}'")
        return

    # 读取名称列表
    names = read_names(TEMPLATE_FILE)
    print(f"共读取到 {len(names)} 个名称: {names}")

    if not names:
        print("没有需要处理的名称,退出。")
        return

    # 创建输出目录
    OUTPUT_DIR.mkdir(exist_ok=True)

    # 复制模板并清理每个副本
    for name in names:
        dest = OUTPUT_DIR / f"{name}.xlsx"
        shutil.copy2(TEMPLATE_FILE, dest)
        clean_copy(str(dest), name)
        print(f"已生成: {dest}")

    print(f"\n完成!共生成 {len(names)} 个文件,保存在 '{OUTPUT_DIR}/' 目录下。")


if __name__ == "__main__":
    main()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
samniboy + 1 + 1 热心回复!

查看全部评分

 楼主| samniboy 发表于 2026-7-17 12:12
lingchen5 发表于 2026-7-17 11:07
需要注意,由于你的工资表中的函数也原封不动的复制了,但是文件变化了,导致函数引用的单元格数据完全错 ...

还是大佬细心,我还没发现工资条函数会导致结果异常的问题,我只是查看了,需要生成的文件没有错误~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-8-17 10:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表