python 拆分excel工作表,Python-将Excel文件的不同工作表另存为单个Excel文件

Newbie : I have an Excel file, which has more than 100 different Sheets. Each sheet contains several tables and charts.

I wish to save every sheet as a new Excel file.

I tried many python codes, but none of them worked.

Kindly help in this. Thanks!

Edit 1 : In reponse to comments, this is what I tried:

import pandas as pd

import xlrd

inputFile = 'D:\Excel\Complete_data.xlsx'

#getting sheet names

xls = xlrd.open_workbook(inputFile, on_demand=True)

sheet_names = xls.sheet_names()

path = "D:/Excel/All Files/"

#create a new excel file for every sheet

for name in sheet_names:

parsing = pd.ExcelFile(inputFile).parse(sheetname = name)

#writing data to the new excel file

parsing.to_excel(path+str(name)+".xlsx", index=False)

To be precise, the problem is coming in copying tables and charts.

解决方案

I have just worked through this issue so will post my solution, I do not know how it will affect charts etc.

import os

import xlrd

from xlutils.copy import copy

import xlwt

path = #place path where files to split up are

targetdir = (path + "New_Files/") #where you want your new files

if not os.path.exists(targetdir): #makes your new directory

os.makedirs(targetdir)

for root,dir,files in os.walk(path, topdown=False): #all the files you want to split

xlsfiles=[f for f in files] #can add selection condition here

for f in xlsfiles:

wb = xlrd.open_workbook(os.path.join(root, f), on_demand=True)

for sheet in wb.sheets(): #cycles through each sheet in each workbook

newwb = copy(wb) #makes a temp copy of that book

newwb._Workbook__worksheets = [ worksheet for worksheet in newwb._Workbook__worksheets if worksheet.name == sheet.name ]

#brute force, but strips away all other sheets apart from the sheet being looked at

newwb.save(targetdir + f.strip(".xls") + sheet.name + ".xls")

#saves each sheet as the original file name plus the sheet name

Not particularly elegant but worked well for me and gives easy functionality. Hopefully useful for someone.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值