python拆分excel的sheet为单文件_Python 入门之excel数据分离成多个sheet

最近老大发了疯一样给我布置很多坑一样的任务,郁闷至极,今天这是一个非常简单的操作excel的示例。

假如你全公司的数据都在一张表格中 ,那么请用这个把它们按部门分离出来吧。

用python写一些小工具确实是简单啊。

optionParser,继上一节的Entry之后,你就已经知道了怎样输入你的文本,那么通过命令行呢,这里的optionParser就是实现了这个目的。

使用optionparser模块来解析

optionparser的执行过程:

导入optionparser : from optparse import OptionParser

构造optionparser的对象:parser = OptionParser()

往optionparser对象中增加option :parser.add_option()

调用optionparser的解析函数:(options, args) = parser.parse_args()

在options中使用解析到的options,在args中使用其他的args。

from optparse import OptionParser

import sys

import xlrd,xlwt

STRING = '部门' #按部门分离

TITLE_ROW = 0

def split_file(filename):

workbook = xlrd.open_workbook(filename)#

sheet = workbook.sheet_by_index(1) #通过index选择你需要分割的那个sheet

Title=sheet.row_values(TITLE_ROW) #

print(Title)

index = Title.index(STRING)#选择所需要的那一列数据

print(index)

all= sheet.col_values(index)

department = list(set(all))

department.remove(STRING) #删除Title这一个元素得到的是所有的部门了

print(department)

wb_result=xlwt.Workbook()

for sub_dt in department:

row_i =0

sheet_subdt=wb_result.add_sheet(sub_dt,cell_overwrite_ok=True)

for j in range(sheet.ncols):

sheet_subdt.write(row_i,j,sheet.row_values(TITLE_ROW)[j])

row_i=row_i+1

for i in range(1,sheet.nrows): #第1行是Titile,从第2行开始

if sheet.row_values(i)[index] == sub_dt:

for j in range(sheet.ncols):

sheet_subdt.write(row_i,j,sheet.row_values(i)[j])

row_i=row_i+1

wb_result.save('result-split.xls')

def main():

parser = OptionParser(description="split your excel sheet to many by keywords.", usage="%prog [-f]", version="%prog 1.0")

parser.add_option('-f', '--filename', dest='filename',

help="the filename that you need to split.")

options, args = parser.parse_args(args=sys.argv[1:])

stock = split_file(options.filename)

if __name__=='__main__':

main()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值