找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1267|回复: 0

[求助] 求助大佬帮忙。

1

主题

1

帖子

1

积分

贫民

积分
1
wangxy1990 发表于 2022-10-20 16:52:53 | 显示全部楼层 |阅读模式
例如有三张工作簿,其中sheet名称分别为(表一:1、2,表二:1、4,表三:1、2、3、4),如何让三张工作簿的sheet数量和名称相同。就是三张工作簿的sheet表,都是1、2、3、4四张工作表。现在提取了一张工作簿的所有表名称,然后怎么做,一头雾水。
# C:\Users\GSJZ\Desktop\云搜数据\新建文件夹
import openpyxl
import glob
import os
import pandas
import os.path
import win32com.client as win32
#v格式转化
## 根目录
#循环定义
path_file_number=glob.glob('C:/Users/GSJZ/Desktop/云搜数据/新建文件夹/*.xls')#或者指定文件下个数,用于计数
file_dir =  u'C:/Users/GSJZ/Desktop/云搜数据/'      #用于统计文件名称的地址
sum = 0
sum1 = 0
#--------------------------------------------------------------------------------

rootdir = u'C:/Users/GSJZ/Desktop/云搜数据/新建文件夹/'
outputdir = u'C:/Users/GSJZ/Desktop/云搜数据/'
# 三个参数:父目录;所有文件夹名(不含路径);所有文件名
for parent, dirnames, filenames in os.walk(rootdir):
    for fn in filenames:
        filedir = os.path.join(parent, fn)
        print(filedir)
        excel = win32.gencache.EnsureDispatch('Excel.Application')
        wb = excel.Workbooks.Open(filedir)
        # xlsx: FileFormat=51
        # xls:  FileFormat=56,
        # 后缀名的大小写不通配,需按实际修改:xls,或XLS
        wb.SaveAs((os.path.join(outputdir, fn + "x")), FileFormat=51)  # 我这里原文件是大写
        wb.Close()
        excel.Application.Quit()
#打开文件,提取表名
while sum1 < len(path_file_number):
    for root, dirs, files in os.walk(file_dir):
        while sum < len(path_file_number):
            print(files[sum]) #当前路径下所有非目录子文件
            file_path = 'C:/Users/GSJZ/Desktop/云搜数据/%s'%files[sum]
            xls = pandas.ExcelFile(file_path)
            sheet_names = xls.sheet_names
            sheet = ''.join(sheet_names)
            print(sheet)
            print(sheet_names)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表