精华内容
下载资源
问答
  • 做这次脚本的初衷是为了从一个excel读取项目名称,并根据项目名称中的内容去匹配模板,如果项目中有新建则去匹配新建的模板某种匹配另一个模板,并将模板修改文件名为项目名称并重新改变目录,一下是代码实现 ...

    一、需求分析

    做这次脚本的初衷是为了从一个excel读取项目名称,并根据项目名称中的内容去匹配模板,如果项目中有新建则去匹配新建的模板某种匹配另一个模板,并将模板修改文件名为项目名称并重新改变目录,一下是代码实现

     

    二、代码和注释 

    # -*- coding: utf-8 -*-
    import os, sys,re,shutil
    import xlrd


    dir=r'C:\Users\Administrator\Desktop\9.6\19年配网工程储备' #原文件存放的目录
    #下面是两个模板第一个是新建模板,另一个是其他模板
    xinjianfile=r'C:\Users\Administrator\Desktop\9.6\temp\徐州铜山10千伏大许镇机关南2#配变新建工程.xlsx'
    otherfile=r'C:\Users\Administrator\Desktop\9.6\temp\徐州铜山10千伏大许镇黄楼村4#配变增容改造工程.xlsx'
    save_path=r'C:\Users\Administrator\Desktop\9.6\changed'#修改后需要存放的目录
    fs = os.listdir(dir)#列出该文件下所有文件,读取原文件夹下存放的excel文件
    for f1 in fs:
        print('--------------current file to be make is %s ---------------' % f1)
        #因为以下文件有问题,需要用continue跳出循坏
        if f1[0]=='~':continue
        if  '单集' in f1 : continue
        #存放目录的子文件夹
        tmp_path = os.path.join(dir,f1)
        save_file_path=save_path+'/'+f1+'/'
        if not os.path.exists(save_file_path):
            os.makedirs(save_file_path)
       
        work_book = xlrd.open_workbook(tmp_path)
        sheet0 = work_book.sheet_by_index(0)#读取改excel表中的第一个文件
        col_values = sheet0.col_values(1) #读取改excel表中的第一个文件第二列,实际中第二列就是项目名称
        colus=col_values[4:] #以为第二列前几个是无效信息用列表切片来跳过
        i = 1

        for f in colus:
            f=str(i)+'.'+f  #这里给文件名加上标号
            i+=1
            #这里根据项目名称去匹配模板
            if '新建' in f:
                new_filename=save_file_path+f+'.xlsx'
                shutil.copyfile(xinjianfile, new_filename)  #复制excel文件并存储到相应目录
            else:
                new_filename = save_file_path + f+'.xlsx'
                shutil.copyfile(otherfile, new_filename)

    展开全文
  • Python要对Excel表格操作,具体内容分为:复制Excel模板,然后填写部分单元格,最后对其以修改的日期命名。 这种情况下,用哪个模块毕竟好?xlrd还是啥? 刚学Python,小白想求下实现这些操作的代码,谢谢大神们!...
  • Python-Excel-08-复制工作表

    千次阅读 2019-06-01 20:14:11
    这个系列讲讲PythonExcel的操作 今天讲讲使用win32com模块,复制工作表 这种在做大量重复工作时候,先制定一个模板,后续直接复制该表,再做个性化修改即可 Part 1:示例说明 已有一个Exce...

    微信公众号原文

    系统:Windows 7
    语言版本:Anaconda3-4.3.0.1-Windows-x86_64
    编辑器:pycharm-community-2016.3.2

    • 这个系列讲讲Python对Excel的操作
    • 今天讲讲使用win32com模块,复制工作表
    • 这种在做大量重复工作时候,先制定一个模板,后续直接复制该表,再做个性化修改即可

    Part 1:示例说明

    1. 已有一个Excel文件复制工作表.xlsx,其中一个工作表名称为示例
    2. 复制示例工作表,新工作表名称为新复制
    3. 新复制工作表B1单元格写入复制

    原表
    1.png

    复制后
    2.png

    Part 2:代码

    import os
    import win32com
    from win32com.client import constants as c  # 旨在直接使用VBA常数
    current_address = os.path.abspath('.')
    
    excel_address = os.path.join(current_address, "复制工作表.xlsx")
    xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application")  # 若想引用常数的话使用此法调用Excel
    xl_app.Visible = False  # 是否显示Excel文件
    wb = xl_app.Workbooks.Open(excel_address)
    sht = wb.Worksheets("示例")
    
    # 复制工作表
    new_sht_name = "新复制"
    sht.Copy(After=sht)
    wb.ActiveSheet.Name = new_sht_name
    sht_copy = wb.Worksheets(new_sht_name)
    sht_copy.Range("B1").Value = "复制"
    
    wb.Save()
    wb.Close()
    

    代码截图
    3.png

    Part 3:部分代码解读

    1. sht.Copy(After=sht),复制一张新表,并将其位置放在sht
    2. wb.ActiveSheet.Name = new_sht_name,修改新建工作表的名称
    3. sht_copy = wb.Worksheets(new_sht_name),获取新建工作表这个对象
    4. sht_copy.Range("B1").Value = "复制",单元格赋值

    本文为原创作品,欢迎分享朋友圈

    常按图片识别二维码,关注本公众号
    Python 优雅 帅气
    12x0.8.jpg

    展开全文
  • 前几天,我姐遇见了一个难题:需要从excel表格中不断复制数据到word模板中,相当繁琐,询问我有没有解决的办法。于是我百度了一下,借鉴了相关博主的博文,结合自己的需求,最终解决了该问题。特在此记录一下。 问题...

    Python 读取excel及批量生成word模板

    问题-来源

    前几天,我姐遇见了一个难题:需要从excel表格中不断复制数据到word模板中,相当繁琐,询问我有没有解决的办法。于是我百度了一下,借鉴了相关博主的博文,结合自己的需求,最终解决了该问题。特在此记录一下。

    问题-困难

    问题1:一直无法导入docxptl库,一直尝试仍无法解决。直到第二天,下定决心下载最新版本的python,该问题解决。
    问题2:读取excel的xlrd一直读取不了我的数据源,多次百度最终寻得解决办法:因为我的表格是以xlsx结尾的,1.2.0之后的xlrd库版本只能读取xls结尾的表格,所以,我在pycharm中下载的xlrd库版本为1.2.0,该问题解决。

    问题-代码解决

    word模板需要用{{}}进行占位,具体 如下图所示:
    在这里插入图片描述

    以下是源码:

    # coding:<encoding name> : # coding: utf-8
    import xlrd
    from docxtpl import DocxTemplate
    
    
    def main():
        data = xlrd.open_workbook(r'C:\Users\22815\Desktop\打印\数据表.xlsx')
        for x in range(0, 1):#这儿可以循环多张表
            print(x)
            table = data.sheets()[x]
            names = data.sheet_names()[x]  # 获取表名
            nrows = table.nrows
            print(names)
    
            for i in range(nrows):
                name = table.row_values(i)[0]  # 姓名
                idCard = table.row_values(i)[3]  # 身份证
                smallMoney = table.row_values(i)[1]  # 金额小写
                bigMoney = table.row_values(i)[2]  # 金额大写
                month = table.row_values(i)[5]  # 月份
                day = table.row_values(i)[6]  # 天
                SMoney = str(smallMoney).replace(".0", "")#上面的数据打印出来会有.0,但是我们不需要,所以剔除。
                SMonth = str(month).replace(".0", "")
                Sday = str(day).replace(".0", "")
                context = {
                    "name": name,  # 姓名
                    "idCard": idCard,  # 身份证号码
                    "smallMoney": SMoney,  # 金额小写
                    "bigMoney": bigMoney,  # 金额大写
                    "month": SMonth,  # 月
                    "day": Sday  # 天
                }
                word = DocxTemplate(r'C:\Users\22815\Desktop\打印\个人工资结清承诺书.docx')
                print(context)
                word.render(context)
                word.save(names + "-" + "{}".format(name) + ".docx")
            print("保存成功")
    
    
    if __name__ == '__main__':
        main()
    
    

    问题-总结

    以上便是关于该问题的解决代码,仍有许多完善之处:如保存路径和目录的生成等,仍需继续改进。
    新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦。

    展开全文
  • python使用win32com复制Excel图表需求win32com安装代码详细使用说明 需求 需求:制作一个含有图表和公式的excel表模板,根据模板复制N份excel表,并重命名表名,将数据填入到对应excel表中,每个表中的图表和公式...

    python使用win32com复制Excel图表

    需求

    需求:制作一个含有图表和公式的excel表模板,根据模板复制N份excel表,并重命名表名,将数据填入到对应excel表中,每个表中的图表和公式根据数据实时更新。。

    win32com安装

    安装win32com需要安装pywin32
    pip install pywin32

    代码详细使用说明

    首先要制作好一个模板excel表,并含有公式和图表

    		import pythoncom,win32com,os
    		newFileName='pythoncomdemo.slsx'
    		pythoncom.CoInitialize()#initialization
            # current_address = os.path.abspath('.')
            # excel_address = join(current_address,newFileName)
            # print excel_address
            # xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application")
            # # xl_app.Visible = True
            # wb = xl_app.Workbooks.Open(excel_address)
    
            xl_app = win32com.client.DispatchEx('Excel.Application')#Start a new excel.if already open a excel,still start a new.
            # xl_app = win32com.client.Dispatch('Excel.Application')#Start a new excel.if already open a excel ,do not start a new.
            absPath = os.path.abspath(newFileName)
            wb = xl_app.Workbooks.Open(absPath)
            for i in range(0,10):#生成10个excel表
                sht = wb.Worksheets('tempture') #获得模板表
                new_sht_name = 'newsheet%s'%i #新表名称为'newsheet%s'%i
                sht.Copy(Before=sht)#复制新表位于在模板表前面,且为活动表
                wb.ActiveSheet.Name = new_sht_name#给当前活动表重命名
                copyshett=wb.Worksheets(new_sht_name)#获得新表
                #print copyshett.Range("L22").Value
            wb.Save()#保存excel
            wb.Close()#关闭excel
            pythoncom.CoUninitialize()#Release resources
    

    以上代码复制了10个模板表,使用win32com可以将图表一起复制。使用openpyxl对excel表进行数据的填写。以下为将数据写入excel表的代码

    		from openpyxl import load_workbook
     		workbook = load_workbook(newFileName, data_only=False)#data_only=False为以公式形式读写excel,可不写;data_only=True为以数值形式读写excel
            sheetnames = workbook.get_sheet_names()
            ws1 = workbook.get_sheet_by_name(sheetnames[0])#Get the first table
            workbook.remove_sheet(workbook.get_sheet_by_name(tempsheet))#根据表名删除excel表
            ws1['C3'] = 12#往C3单元格写入数字12
            ws1[chr(65) + str(7)]='chr'#往A7单元格中写入字符串chr
            ws1['D1']='=IF(LEN(B'+str(7)+')>0, ROW()-8)'#往B7写入公式,数字为当前行数减去8
            
            ws1.cell(row=3,column=5).value='hebingdanyuange'
            ws1.cell(row=3, column=5).alignment = Alignment(horizontal="center", vertical="center")#E3单元格居中显示
            ws1.merge_cells(start_row=3, start_column=5, end_row=3, end_column=6)#合并单元格E3:G3
            ws1.cell(row=3, column=5).fill = PatternFill("solid", fgColor="DC143C")#合并单元格颜色为红色
    		
    		value=ws1['L22'].value#获得单元格L22的值
    		workbook.save(newFileName)#保存excel,括号中输入新的excel名称可以另存为新excel
            workbook.close()
    

    以下为win32com往excel中读写数据

    		ws1.Range('C3').Value = 'win32com'#往excel中写入数据
    		value=ws1.Range("L22").Value#获得L22单元格的值
    		xl_app.Worksheets('SUMMARY').Activate()#指定sheet为活动sheet
    

    注:在使用workbook = load_workbook(newFileName, data_only=False)读取含有公式的单元格值时读取到的是公式;若使用workbook = load_workbook(newFileName, data_only=True)读取到的是None时,需要使用win32com打开并保存关闭后即可读取到公式计算后的数值。

    展开全文
  • 三、套用Excel模板 ...作用:将一个Excel模板中的格式,复制到新建的工作簿中 模板如下图: 思路 复制模板 xlrd.open_workbook(‘模板位置’, formatting_info=True) 设置格式 xlwt.XFStyle() 写入内容 wri...
  • 利用python处理excel

    2019-12-15 14:39:14
    我的思路是:把报税模板复制出来,然后每月自动根据年金领取信息填写保存,吐槽一下,税表模板是xls,只支持6万数据,我尝试用一个xlsx文件上传,不过也成功了,嘻嘻,所以我手工把模板改成xl...
  • 作为一个入门小白,看见别人高效完成n多个表格,甚是羡慕,但如果要自己码一遍代码,感觉时间性价比不大,所以做出一些高效办公模板,亲们根据目录找到合适的模板,直接套用即可,来自(曾贤志老师)的笔记 ...
  • 我用xlrd打开一个模板文件,xlutils.copy复制它,再用新值填充它,并保存它。 然而,似乎没有任何简单的方法来保护单元格的格式,wlrd高版本后无复制其单元的格式。... 以下为一个简单的复制excel文件程序;
  • 工具背景 由于工作过程的繁杂性,工作内容的复杂性。急需一个工具来自动的...公司模板或者ERP内置模板一般都是固定的,所以我针对本人所在公司设计了这样一个基于Python语言的BOM表自动生成工具。 所需模块 imp...
  • 利用python读取Excel文件的数据到Mysql

    千次阅读 2019-04-04 18:32:25
    运营工作中会遇到很多Excel表格,表格的模板都是一样的,但是只是数据不一样,一个个粘贴复制会很麻烦,我又不会VBA,那么如何快速将数据都汇总到一起,并导入到数据库呢?我尝试了用脚本的方式,解决这个问题。...
  • 制作excel模板(有三行需要一个个单元格分开制作)3.复制sheet页使用的库如下,功能一目了然,不做详解:import json,openpyxl import shutil,os from openpyxl.styles import Border, Side, Font, Gradient...
  • 应用场景:定制一个Excel模板文件,其中定义了一个模板Sheet,以此模板文件里的模板sheet为样例,制作报表,里面有不止一个模板样例Sheet 一、软件环境: 1.OS:Win10 64位 2.Python 3.7 二、准备:在测试文件夹下...
  • python在执行save保存excel时可能报错原因:# 每次执行前new_file_name都必须是最新的excel,也就是从原模板中直接复制的文件,如果你先执行了程序插入数据进模板,然后删除模板中的数据,保存exce,再执行程序则报错...
  • Python 复制模板文件夹,将指定excel中的内容插入到相应的xml文档中生成 新的文件夹 代码中的相关路径 excel路径:D:\\yangjh1\\file\\jenkins_import.csv xml 路径:D:\\yangjh1\\file\\template\\config.xml 新...
  • 已知的Excel模板格式、已知的文件命名规则(存储在Excel中),批量生成文件 代码如下 import shutil import xlrd # 打开存储文件命名规则的文件 data = xlrd.open_workbook('C:ccc\\新新编号.xls') # 打开工作表 ...
  • python能够轻松实现自动化办公,一些金融、证券、会计行业中会经常处理excel中的大量数据,工序单一,任务繁多,以下 项目实现汇总多个excel文件特定数据,生成图表呈现,可以作为一个模板进行改造升级应用: ...
  • ​​​​​​​1、重命名复制excel模板 2、读取csv目标内容部分 3、写入excel 4、判断目标列值,特定行写入备注 实现代码 #给CSV文件刷上excel格式 #import chardet import os,shutil import openpy
  • 由于每天都要汇总日报数据,其实就是个复制粘贴的工作,将多个表的数据汇总成一个表格,工作较枯燥,于是想到用Python帮我完成这个简单又粗糙的工作。写一下我学到的几个小技巧,下次忘记怎么使用的时候,还能回来看...
  • 下面我通过python实现了一个自动生成代码简易模板, 使用前,需要将我们生成代码的属性,和属性含义,写入到excel中,如下图 图中几个红框的需要注意 excel名称必须叫:BEAN.xls 第一行有2列,...
  • 【每次会先复制模板生成新文件,新文件名包含当前日期,然后把数据填写到新文件中】 csv文件 文件内容是从数据库中查出来的sql结果,共十组,第一组为模板中M列的数据(24小时单量),然后依次为10点,11点,12点...
  • 1. python复制excel格式到新表,并写入数据: import xlutils # xlutils 是将一个excel模板的格式复制到一个新建的工作薄中 import xlrd import xlwt from xlutils.copy import copy tem_excel = xlrd.open_...
  • Python Cookbook

    2013-07-31 22:33:26
    14.13 通过模板将数据放入Web页面 527 14.14 在Nevow中呈现任意对象 530 第15章 分布式编程 534 引言 534 15.1 实现一个XML-RPC方法调用 536 15.2 服务XML-RPC请求 537 15.3 在Medusa中使用XML-RPC 539 15.4...
  • 尹成Python27天入门到项目实战

    千人学习 2020-12-05 17:04:22
    综合实战播放音乐设置背景鬼程序协程简介协程传递数据wmv协程编号协程生产者消费者模式office自动化操作wordoffice办公自动化操作exceloffice办公自动化操作outlookoffice办公自动化access开发环境配置访问mdb格式...
  • 假设你的公司作为一项大型交流会议的主办方之一,...今天就来完成第一步,用Python快速合并表格,抛弃一个个‘复制粘贴’的笨方法吧~ 思路讲解 1.导入模块 导入过程中所要用到的模块 2.获取文件名 得到全部表格文件
  • 显示Word、Excel、PDF文件 QSplitter 分割窗口的分割条重绘 QSerialPort 串口调试小助手 QProxyStyle Tab文字方向 QMessageBox 消息对话框倒计时关闭 自定义图标等 消息框按钮文字汉化 ...
  • Latex 如何编辑matlab代码使用 Python ...和其他容易出错且无法复制的软件套件的使用非常普遍。 使用标准模板并介绍另一种工作方式(例如,版本控制、文本文件、LaTeX、编写计算机代码)可以帮助我

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

python复制excel模板

python 订阅