学了一段时间的python,第一次用于解决现实问题。要实现代码使用功能,必须修改代码的一部分。后期再补充吧!

#功能:每页自动调整表单行高,避免中心页面出现大空间!

#最近一年,调整表格打印格式的任务有点多,每次表格移动都达几十页,每次调整大晚上都会瞎掉眼睛。(《莎士比亚》前情提要)(《莎士比亚》前情提要)。

#我真的受不了。WPS没有这个功能。使用VBA应该比较简单。但是最近在学python,是的,仅此而已,劝阻吧!

#缺点是需要部署环境。Py,安装xlwings模块。

#从2022-4-7到2022-4-9用了3天,终于实现了基本功能。应用实例时,必须修改代码的一部分。

#这后面再完美一次,请制作适合所有实例的代码,然后卷进VBA。

#=====================================================

第一步是设置纸张方向、规格等,并设置边距

#第二阶段,代码演奏;设置纸张类型、页边距

#第三步,自适应行高;标题列和上一行可变行高之后的x

步骤# 4,获取标题列行高的总和

步骤# 5,从第一行开始计算行高,直到行高之和大于图纸高度减去上边距和下边距之和(返回y值)

步骤# 6、调整第一页行高、第一页行高、标题列和前一行高不会调整,剩馀行高将调整为可变行高(Y-标题列和前一行高的总和)/剩馀行数

#第7步,调整第二页和以后的行高,不调整标题列,请参阅调整方法第6步“”

#PS:循环开始前,循环限制在第一列到最后一列数据行,并首先获取最后一行编号

导入Xl wings导入as xw # Xlwigns模块

#=====================================================

Unit_conv=0.03527 #单位转换,1磅=0.03527厘米

#1。输入纸张大小和方向以确定纸张高度(磅)

def paper _ specification s(paper _ size=' a 4 ',paper _ direction=' Shu') :

Paper={'A0' : (841,1189)、' a1' : (594,841)、' a2' : (420,594)

Paper1=paper[paper_size]

If paper_direction=='shu':

paper _ height=paper 1[1]/(10 * unit _ conv)

Else:

paper _ height=paper 1[0]/(10 * unit _ conv)

返回(paper _ height)

#2。要调整表头和上一行的高度并返回相应的值,请输入表头行号

Def title_h(rg_title_row):

T_height_sum=0

I=1

While I=rg_title_row:

(I,1).rows.autofit()

(I、1)。row _ height=(I,1)。row _ height15

T _ height _ sum=t _ height _ sum (I,1)。row _ height #标头和上一行高度之和

I=1

Rg _ title _ RH=(rg _ title _ row,1)。row _ height #标头列高度

Return ([t _ height _ sum,rg _ title _ RH])

#3。将行高合计到页面之外,输入标题高度、上边距和下边距、起始行号、最后一行编号、缩放比率、纸张高度,返回当前页面的最后一行编号以及要添加到每行的行高值

Defad _ page (rg _ title _ RH、page _ up、page _ down、rg _ row、rg _ lastrow、zoom、)

Ts=0

I=rg_row

While I=rg_lastrow:

(I,1).rows.autofit()

Ts=ts (i,1)。row_height

if((rg _ title _ rhts)* zoompage _ uppage _ down)=paper _ height 3360

布雷克

I=1

R=I-1

ts1 = 0 n = rg_row while n <= r: ts1 = ts1+(n,1).row_height n += 1 rx = paper_height - ((rg_title_rh+ts1)*zoom + page_up + page_down) rv = rx/(r - rg_row + 1) return([r, rv]) #=====================================参数输入区==================================================================== rg_title_row = int(input("请输入表头行号:")) page_up = float(input("请输入上页边距(厘米):"))/Unit_conv #单位:磅 page_down = float(input("请输入下页边距(厘米):"))/Unit_conv #单位:磅 zoom = float(input("请输入缩放比例:")) #在0——1之间取值 #打开表格并获取最后一行数据行号 app = xw.App(visible=True, add_book=False) wb = a(r'G:\desktop\row;) #工作表路径,,实例中需要手动修改代码 st = wb.sheets("城南街道") #工作表选择,实例中需要手动修改代码 rg_lastrow = #获取表格最后一栏数据 = zoom*100 #设置打印页面缩放比例 print_title = '$' + str(rg_title_row) + ':$' + str(rg_title_row) = print_title #设置打印标题栏(表头) #====================================开工吧!小代码!!!==================================================================== a = paper_specifications(paper_size="A4", paper_direction="heng") #获取纸质规格并存在变量a内 b = title_h(rg_title_row) #调整表头栏及之前栏目的行高并存储行高值在列表b内 #调整第一页 c = ad_page(b[0], page_up, page_down, rg_title_row + 1, rg_lastrow, zoom, a) i = rg_title_row + 1 while i <= c[0]: (i, 1).row_height = (i, 1).row_height + c[1]/zoom #从rv是缩小比列之后的增加量,需要放大到缩小前增加量,除以缩放比列 i += 1 #调整其它页面,每页包含表头 r = c[0] + 1 while r <= rg_lastrow: c1 = ad_page(b[1], page_up, page_down, r , rg_lastrow, zoom, a) n = r while n <= c1[0]: (n, 1).row_height = (n, 1).row_height + c1[1]/zoom #rv是缩小比列之后的增加量,需要放大到缩小前增加量,除以缩放比列 n += 1 r = n wb.save() a()

1.《【excel怎么铺满显示】自动调整表行高以填充每页》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【excel怎么铺满显示】自动调整表行高以填充每页》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2542085.html