Python-批量修改Excel内的内容并保留原始格式

3 篇文章 0 订阅
2 篇文章 0 订阅
1.可以看到下面图表内有两个日期,每次都需要将下面两个日期改为其他的日期,一个一个改太费劲了

在这里插入图片描述

2.由于我的原文件是.xlsx,不能保留原始格式(formatting_info=True),所以要做.xlsx转.xls文件的步骤

可以看我以前写过的博客,这里就不赘述了
Python-批处理.xlsx文件与.xls文件相互转换

3.代码如下:
from xlutils.copy import copy
import xlrd
import xlwt
import win32com.client as win32
import os

path1 = r"E:\untitled1\测试\input"  # .xlsx文件存放路径即原始文件
path2 = r"E:\untitled1\测试\temp"  # .xls文件存放路径
path3 = r"E:\untitled1\测试\output"  # 最终生成的文件路径
for each in os.walk(path2):  # 删除.xls文件存放路径下的文件
    for i in each[2]:
        file2 = each[0]+'\\'+i
        if ".xls" in file2:
            os.remove(file2)
############批处理格式转换###################
for file1 in os.listdir(path1):
    filename1 = file1.split('.')  # 文件和格式分开
    transfile1 = path1 + '\\' + file1  # 要转换的excel
    transfile2 = path2 + '\\' + filename1[0] + '.xls'  # 转换出来excel
    excel = win32.gencache.EnsureDispatch('excel.application')
    pro = excel.Workbooks.Open(transfile1)  # 打开要转换的excel
    pro.SaveAs(transfile2, FileFormat=56)  # 另存为xls格式
    pro.Close()
    excel.Application.Quit()
##########批量修改Excel内的内容################
    old_excel = xlrd.open_workbook(transfile2, formatting_info=True)  # 打开文件,保留原格式
    rows = old_excel.sheets()[0].nrows #获取行数
    new_excel = copy(old_excel)  # 复制excel
    new_sheet = new_excel.get_sheet(0)  # 获取sheet
    style = xlwt.XFStyle()   # 预定一个格式
    # 边框
    borders = xlwt.Borders()
    borders.top = xlwt.Borders.THIN
    borders.bottom = xlwt.Borders.THIN
    borders.left = xlwt.Borders.THIN
    borders.right = xlwt.Borders.THIN
    style.borders = borders
    key1 = '2021/1/28'  # 这里修改第一个日期
    key2 = '2021/2/11'  # 这里修改第二个日期
    x1 = 1
    x2 = 2
    t = 4
    y = 0  # 表示列
    for i in range(rows):  # 遍历行
        if x1 <= i:
            new_sheet.write(x1, y, key1, style)   # 修改第一列的数据
            new_sheet.write(x2, y, key2, style)   # 修改第一列的数据
            x1 = x1+t
            x2 = x2+t
            
            new_excel.save(path3 + '\\' + filename1[0] + '.xls')  # 保存

4.运行效果,如下:

在这里插入图片描述
看第一列的日期都批量修改了,此脚本是批处理的,所以就100个xlsx文件要这样改的话,只需要把key1和key2的参数改一下,点击运行,超方便的~不用一个一个的打开,然后修改,然后保存

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python是一种强大的编程语言,可以使用它来批量提取Excel表格中的部分内容,并将其写入新表格中。要实现这个功能,需要使用Python中的pandas库来读取和操作Excel文件,同时还需要使用openpyxl库来创建新的Excel表格。 首先,我们需要导入pandas和openpyxl库: import pandas as pd from openpyxl import Workbook 接下来,我们需要读取原始Excel表格。假设原始表格的文件名为”original.xlsx”,它包含两列数据:姓名和年龄。我们可以使用pandas的read_excel方法读取这个表格: df = pd.read_excel('original.xlsx') 我们可以通过以下方式来筛选出某些特定的行或列: # 筛选出名字包含“Jim”的所有行 jim_rows = df.loc[df['姓名'].str.contains('Jim')] # 只保留名字和年龄这两列 selected_cols = jim_rows[['姓名', '年龄']] 接下来,我们需要将所选的行和列写入新的Excel表格。我们可以使用openpyxl库来创建一个新的工作簿,并在其中创建一个新的工作表: wb = Workbook() ws = wb.active 接下来,我们可以将所选的行和列逐行写入新的工作表中: # 将列名写入新表格的第一行 ws.append(list(selected_cols.columns)) # 将数据逐行写入新表格 for index, row in selected_cols.iterrows(): ws.append(list(row)) 最后,我们可以使用openpyxl库来保存新的Excel表格: wb.save('selected_data.xlsx') 这样,我们就可以通过Python批量提取Excel表格中的部分内容并将其写入新表格了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值