当前位置: 首页 > news >正文

课题网站建设培训简讯汽车之家官网入口

课题网站建设培训简讯,汽车之家官网入口,wordpress汉化po,网站做专题提升权重案例背景 每月都要写各种月报#xff0c;经营管理月报#xff0c;资产月报.....这些报告文字目标都是高度相似的#xff0c;只是需要替换为每个月的实际数据就行#xff0c;如下#xff1a; (打码是怕信息泄露.....) 可以看到#xff0c;这个报告的都是高度模板化…案例背景 每月都要写各种月报经营管理月报资产月报.....这些报告文字目标都是高度相似的只是需要替换为每个月的实际数据就行如下 (打码是怕信息泄露.....) 可以看到这个报告的都是高度模板化我们只需要对里面的某些文字进行替换例如2023年7月换成2023年8月资产数量490替换为最新的值表格里面的数值也是一样的情况。 这篇文章的目的我们并不是从头到尾去从0开始生产月报而是在往期的月报上进行修改。 这些东西都是复制粘贴数据准备好了按照定点的位置填就行了。所以代码来自动化这个流程就很变得很便捷。 代码实现 导入包 import xlrd import pandas as pdimport docx from docx.oxml.ns import nsdecls from docx.oxml import parse_xml from docx import Document from docx.oxml.ns import qn import calendar from docx.shared import Cm, Pt #设置像素、缩进等 from docx.enum.table import WD_TABLE_ALIGNMENT, WD_ALIGN_VERTICAL from docx.enum.text import WD_PARAGRAPH_ALIGNMENTyear 2023 month 7 num_days calendar.monthrange(year, month)[1] print(f{year}年{month}月有{num_days}天) 这里我们要先填入年份和信息因为月报是月底写最后的日期可能是31号可能是30号所以需要用代码自动化计算一下日期..... 锚点查找 进行我们的第一步我们需要数据来写报告数据肯定都在excel里面算好了没算好也肯定需要一定的流程加工算好了再说.....(参考我自动化小技巧16的文章) 例如上面我展示的目标我需要填资产和负债的信息这些数据都在财务那边给我的资产负债表里面我肯定不会自己去打开excel表查找我要的值然后再写入代码里面.....这太低效了而且这就不是自动化了。我们要用代码来找。 但是怎么找自己特定需要的数据呢例如我要找流动资产合计这一项我可以用固定的位置来找比如财务那边总把流动资产合计的值写在C26这个格子里面。 但这种固定位置的查找可能有时候会有问题比如财务那边突然需要加个标题把资产负债表整体向下挪动了一行....那么C26这个位置就不对了。 所以绝对位置不准确那我们就应该用相对位置例如我发现我需要的这个值总是在‘流动资产合计’这个格子的右边两列的位置。那我先查找‘流动资产合计’这一项然后右移动两格就是我需要的值了。 我称这种查找为锚定查找找一个锚点然后偏移找到自己需要的附近的值。这种相对查找的方法比绝对查找的方法出问题的可能性会小一点。 读取资产负债表定义一个函数来进行锚点查找 #资产负债表 wb xlrd.open_workbook(*************业有限公司2023年7月报表20230731.xls) sheet wb.sheet_by_index(0) #wb.sheet_by_name(资产负债表) def find_and_offset_xlrd(sheet, target_value, offset_row, offset_column):for row in range(sheet.nrows):for col in range(sheet.ncols):if str(sheet.cell(row, col).value).replace( ,) target_value:target_cell_value sheet.cell(row offset_row, col offset_column).valuereturn target_cell_value 然后进行查找各种我们需要的值注意这个函数是针对xls文件的xlsx文件读取不了。。后面还会有针对xlsx的锚点查找函数放在文章最后 资产总计 find_and_offset_xlrd(sheet, 资产总计, 0, 2)/10000 流动资产合计find_and_offset_xlrd(sheet, 流动资产合计, 0, 2)/10000 非流动资产合计find_and_offset_xlrd(sheet, 非流动资产合计, 0, 2)/10000 负债合计find_and_offset_xlrd(sheet, 负债合计, 0, 2)/10000 固定资产净值find_and_offset_xlrd(sheet, 固定资产净值, 0, 2)/10000 [资产总计,流动资产合计,非流动资产合计,负债合计,固定资产净值] 这就是我们需要的值然后进行一些必要的运算 流动资产占比100*流动资产合计/资产总计 非流动资产占比100*非流动资产合计/资产总计 净资产资产总计-负债合计 固定资产占比100*固定资产净值/资产总计 其他非流动资产非流动资产合计-固定资产净值 其他非流动资产占比100*其他非流动资产/资产总计 段落替换 由于我们是资产月报还得往表格里面填入各种资产的信息我们需要读取我之前文章做好的资产分类汇总表 dfpd.read_excel(../../资产管理/资产类别变动后汇总/分类汇总金额.xlsx,sheet_name汇总).set_index(资产类别名称) df 进行一些必要的计算...: 实物资产数量df.loc[合计,资产数量] 资产原值df.loc[合计,原值]/10000 生产及动力设备df.loc[生产及动力设备,原值]/10000 写好我们 需要的文字目标 txtf截至{year}年{month}月**公司资产总计约{资产总计:.0f}万元。其中流动资产{流动资产合计:.0f}万元占比{流动资产占比:.1f}%非流动资产{非流动资产合计:.0f}万元占比{非流动资产占比:.1f}%。负债合计{负债合计:.0f}万元净资产{净资产:.0f}万元。 公司非流动资产中固定资产{固定资产净值:.0f}万元固定资产净值占资产总额{固定资产占比:.0f}%其他类非流动资产{其他非流动资产:.0f}万元占资产总额{其他非流动资产占比:.2f}%长期待摊费用、递延所得税资产、无形资产。 截至{year}年{month}月,**公司管理实物资产数量{实物资产数量:.0f}项金额{资产原值:.0f}万元资产原值。其中自有实物资产数量{实物资产数量:.0f}项主要为机械设备账面价值{生产及动力设备:.0f}万元受托管理实物资产数量0项账面价值或资产原值0万元。公司管理实物资产情况如下表:txttxt.split(\n) 这几句话我们就需要进行替换了替换掉原来的段落。这种很多需要修改的我们就进行段落替换如果只是像2023年7月换成8月的这种小修改就简单替换后面会有这种函数 核心函数修改样式 def set_style(paragraphs,styleu仿宋_GB2312,size16):for run in paragraphs.runs:run.font.name stylerun.font.size Pt(size)r run._element.rPr.rFontsr.set(qn(w:eastAsia),style) 这个函数的功能是修改这个段落的字体和大小。因为我发现每次代码修改了word里面的东西后它就会默认使用微软体文字.....使用我们需要把内容变成我们要的模板格式。我们需要这个函数无论替换了什么内容都需要它来变一下格式 擦屁股。 读取文档替换文字 doc docx.Document(f./资产附件/附件1资产管理月度情况简报{month-1}月.docx) for i,paragraph in enumerate(doc.paragraphs):#if 2023年 in run.text:if 月远大公司资产总计约in paragraph.text:paragraph.text txt[0]print(0) ; set_style(paragraph)if 公司非流动资产中固定资产 in paragraph.text:paragraph.text txt[1]print(1) ;set_style(paragraph)if 月远大公司管理实物资产数量 in paragraph.text:paragraph.texttxt[2]print(2) ;set_style(paragraph) if f{year}年 in paragraph.text and (ilen(doc.paragraphs)-3):paragraph.textf{year}年{month}月{num_days}日 ;set_style(paragraph)paragraph.alignment WD_PARAGRAPH_ALIGNMENT.RIGHT if判断是尽可能找到你需要替换的段落然后换为上面我们设定的文字然后设置一下样式。 最后这个条件判断意思是如果段落行数为最后3行里面的出现了年月日那么久换为最新的年月日。因为我需要改落款日期但是对全文全部修改会可能出问题所以限定了最后3行。 文字替换 这个函数类似于word里面的替换功能把你要查找的文字换为其他文字 #查找替换 def docx_replace(old_text, new_text, doc):for paragraph in doc.paragraphs:if old_text in paragraph.text:paragraph.text paragraph.text.replace(old_text, new_text)set_style(paragraph) docx_replace(f截至{year}年{month-1}月, f截至{year}年{month}月, doc) 这是替换了月份每次都把月报里面的日期肯定要更新为最新的。 docx_replace(f{year}年1-{month-1}月经省, f{year}年1-{month}月经省, doc) docx_replace(f现将**公司{month-1}月资产管理情况报告如下, f现将**公司{month}月资产管理情况报告如下, doc) 表格替换 文字我们都改了之后我们对word表里面的数据也要进行修改 我们可以获取word里面的表对象 table doc.tables[0] 直接替换里面的文字是不行的还是因为样式会变成默认样式和领导要求的模板不一样... 所以也需要设置一下。 定义一个表格替换函数传入你要替换的格子替换的文本以及字体样式大小居中什么的 def set_cell_text(cell, text, font_name仿宋_GB2312, font_size12, alignmentWD_PARAGRAPH_ALIGNMENT.CENTER):cell.text textfor paragraph in cell.paragraphs:paragraph.alignment alignmentset_style(paragraph,font_name,font_size) 因为目标表格填的位置是固定的所以我可以使用绝对位置来查找我需要换的数值 set_cell_text(table.cell(2, 3), str(df.loc[房屋建筑物,资产数量]), 仿宋_GB2312, 12) set_cell_text(table.cell(2, 4), f{df.loc[房屋建筑物,原值]/10000:.0f})set_cell_text(table.cell(7, 3), str(df.loc[办公及电子设备,资产数量])) set_cell_text(table.cell(7, 4), f{df.loc[办公及电子设备,原值]/10000:.0f})set_cell_text(table.cell(8, 3), str(df.loc[车辆,资产数量])) set_cell_text(table.cell(8, 4), f{df.loc[车辆,原值]/10000:.0f})set_cell_text(table.cell(9, 3), str(df.loc[生产及动力设备,资产数量])) set_cell_text(table.cell(9, 4), f{df.loc[生产及动力设备,原值]/10000:.0f})set_cell_text(table.cell(10, 3), str(df.loc[安全设施,资产数量])) set_cell_text(table.cell(10, 4), f{df.loc[安全设施,原值]/10000:.0f})set_cell_text(table.cell(11, 3), str(df.loc[家具和其他,资产数量])) set_cell_text(table.cell(11, 4), f{df.loc[家具和其他,原值]/10000:.0f})set_cell_text(table.cell(15, 3), str(df.loc[合计,资产数量])) set_cell_text(table.cell(15, 4), f{df.loc[合计,原值]/10000:.0f}) 最后保存一个自动化月报的工程就完成啦。 doc.save(f附件1资产管理月度情况简报{month}月.docx)
http://www.dnsts.com.cn/news/169018.html

相关文章:

  • seo技术网站建设家具网站建设规划
  • 浙江省住房和建设厅网站做一个商城网站需要什么流程
  • 中英文双语网站建设汕头潮南网站建设
  • 出名的建站网站wordpress的官网
  • 济南建站做网站的控件
  • 如何做一个门户网站html5彩票网站模板
  • 流量对网站排名的影响因素做网店好还是网站好
  • 现在网站建设用什么语言注册安全工程师是干什么的
  • 自己怎样做网站wordpress 指定模板
  • 深圳在线制作网站wordpress 记录访问ip
  • 云南建设学校网站首页WordPress托管如果使用插件
  • 湖南省网站设计公司西安 网站设计
  • 怎么把svg做网站背景vs做网站怎样加数据库
  • 关闭未备案网站网站推广软件污
  • 站长工具黄网站建设就是学淘宝吗
  • 模版建网站erp管理系统软件有哪些
  • python策略网站怎么做智慧软文发布系统
  • 东莞做网站那家好百度网站与推广
  • 网站怎么添加关键词 好让百度收入_ 现在网站用的是模板做的外贸业务员面试常见问题
  • 织梦cms建设企业网站做网站客户需要提供的资料
  • 做最好的网站新新宁波seo网站服务
  • 网站建设是软件开发吗提供网站建设服务的网站
  • 响应式网站优势短网址生成功能
  • 西宁专业网站建设公司个人网站相册怎么做
  • 网站的营销方案做画册可以参考哪些网站
  • 松江网站设计常州网站建设维护
  • 网站设置关于我们怎么做推广网站站群
  • 免费的求职简历模板网站哈巴河网站制作
  • 建设视频网站链接百度云盘比较好的 网站统计系统 php源码
  • 咨询企业网站模板最近新闻头条最新消息