Bootstrap

Python处理Excel(7):处理清产核资表格(2)合并单元格等

Python处理Excel(7):处理清产核资表格(2)合并单元格等
openpyxl能保持Excel表原有的格式。
一、清空单元格

#coding=utf-8
#合并单元格,此文档尝试了用增加行
import xlrd, xlwt, xlwings, pyautogui, time, pyperclip, easygui, os, tkinter, io,pandas,shutil,re, os
from tkinter import filedialog,ttk

from openpyxl import load_workbook
from openpyxl.styles import Border, Side, colors
#import autopy as at
import openpyxl

#file= tkinter.filedialog.askopenfile()#选择打开什么文件,返回IO流对象
#file= tkinter.filedialog.askopenfilename()#选择打开什么文件,返回文件名

#print(file)

from io import StringIO
import sys
from contextlib import contextmanager
import sys

curn_path = os.getcwd() #current path当前路径
temp_tabl_path = os.path.join(curn_path, 'Template Table')
outp_tabl_path = os.path.join(curn_path, 'Output Table')
data_sour_path = os.path.join(curn_path, 'Data Source')
# ['封面', '货币资金清查登记表', '短期投资清查登记表', '应收款项清查登记表', '库存物资清查登记表', '牲畜 (禽) 资产清查登记表', '林木资产清查登记表', '长期投资清查登记表',
#  '固定资产清查登记表-1', ' 固定资产清查登记表-2', '在建工程清查登记表-1', '在建工程清查登记表-2', '无形资产清查登记表', '租赁发包合同', '短期借款清查登记表', '应付款项清查登记表',
#  '长期借款及应付款清查登记表', '应付工资清查登记表', '应付福利费清查登记表', '一事一议资金清查登记表', '专项应付款清查登记表', '所有者权益清查登记表', '待界定资产清查登记表(账外)',
#  '资源性资产清查登记明细表-1', '资源性资产清查登记明细表-2', '资源性资产清查登记明细表-3', '资产负债表(合并报表)', '资源性资产清查登记总表', '收益分配统计表', '合同总表']
list_shet_name =['货币资金清查登记表', '应收款项清查登记表', ' 固定资产清查登记表-2','应付款项清查登记表','应付工资清查登记表','专项应付款清查登记表']
#indx_list_shet_name=0
shet_name =list_shet_name[0]
def get_file_list(raw_folder_path):
    # 打开文件
    dirs = os.listdir(raw_folder_path)
    raw_file_list=[]
    raw_file_path_list=[]
    for home, dirs, files in os.walk(raw_folder_path):
        for file_name in files:

            raw_file_list.append((file_name))
            raw_file_path_list.append(os.path.join(home, file_name))
    #print('raw_file_list')
    #print(raw_file_list)
    return raw_file_list,raw_file_path_list



def modf_excl(targ_file_path, shet_name): #modify Excel
    #Unmerges cells Excel 01.py:50: DeprecationWarning: Call to deprecated function get_sheet_by_name
    # python的openpyxl连接Excel:舍弃get_sheet_names()
    # 与get_shetet_by_name(),现在已经替换成了相应的其他两个方法。
    # - wb.get_sheet_names()(舍弃) —— > wb.sheetnames(现在用的)
    # - wb.get_sheet_by_names(‘sheet1’)(舍弃) —— > wb[ ‘sheet1’](现在用的)
    # ————————————————
    # 版权声明:本文为CSDN博主「い风花の雪栎」的原创文章,遵循CC
    # 4.0
    # BY - SA版权协议,转载请附上原文出处链接及本声明。
    # 原文链接:https: // blog.csdn.net / XRTONY / article / details / 113817732


    print(targ_file_path)

    wb = load_workbook(targ_file_path)
    # # ws = wb[' 固定资产清查登记表-2']
    # #ws = wb['封面']
    # #ws = wb[' 固定资产清查登记表-2']
    # ws = wb['应收款项清查登记表']
    # ws = wb['资源性资产清查登记明细表-1']
    ws = wb[shet_name]
    #ws = wb.get_sheet_by_name('封面')
    # ws.merge_cells('A1:B1')
    # ws.unmerge_cells('A1:B1')
     # 以下函数可以达到相同效果
    #ws = wb._sheets[0]
    # 获取行列数
    # print(wb.sheetnames)
    # ['封面', '货币资金清查登记表', '短期投资清查登记表', '应收款项清查登记表', '库存物资清查登记表', '牲畜 (禽) 资产清查登记表', '林木资产清查登记表', '长期投资清查登记表',
    #  '固定资产清查登记表-1', ' 固定资产清查登记表-2', '在建工程清查登记表-1', '在建工程清查登记表-2', '无形资产清查登记表', '租赁发包合同', '短期借款清查登记表', '应付款项清查登记表',
    #  '长期借款及应付款清查登记表', '应付工资清查登记表', '应付福利费清查登记表', '一事一议资金清查登记表', '专项应付款清查登记表', '所有者权益清查登记表', '待界定资产清查登记表(账外)',
    #  '资源性资产清查登记明细表-1', '资源性资产清查登记明细表-2', '资源性资产清查登记明细表-3', '资产负债表(合并报表)', '资源性资产清查登记总表', '收益分配统计表', '合同总表']
    row = ws.max_row
    colm = ws.max_column
    #print(row)
    #print(colm)

    # # 单元格赋值
    #ws.cell(row=9, column=1, value='金额')
    # xl_cell = xl_sheet.cell(row=i, column=j, value=“金额”)

    #ws.unmerge_cells(start_row=row-1, start_column=1, end_row=row-1, end_column=3)  #wb[' 固定资产清查登记表-2']
    #ws.unmerge_cells(start_row=row-1, start_column=1, end_row=row-1, end_column=2)  #'应收款项清查登记表'

    #ws.unmerge_cells(start_row=row - 1, start_column=1, end_row=row - 1, end_column=2)  # '资源性资产清查登记明细表-1'
    if shet_name=='货币资金清查登记表':
        print('修改{}'.format(shet_name))
        ws.cell(row=6, column=4).value = 0.00
        ws.cell(row=6, column=8).value = 0.00
        ws.cel
;