|
例如有三张工作簿,其中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)
|
|