参考:
显示 【sheet数】【sheet Name】【(第一行,第一列)】
print sheets[0][1][(0,0)]
from pyExcelerator import *
sheets = parse_xls('src/天娱版权明确的歌曲清单.xls')
sdata=sheets[0][1]
#按行数 迭代
for tnum in range(max([tmp[0] for tmp in sdata])):
print sdata[(tnum,0)],'-',sdata[(tnum,1)]
from
pyExcelerator
import
*
import os
sheets = parse_xls( ' xls/版权确认清单表20090601.3.xls ' )
cpcc = parse_xls( ' xls/CP对应表.xls ' )
g2u = lambda str : str.decode( ' gbk ' )
bmug = lambda str : unicode(str).encode( " gbk " )
tsdata = cpcc[0][ 1 ]
for tnum in range(max([tmp[0] for tmp in tsdata]))[:]:
cpname = tsdata[(tnum,cfsize( ' A ' ))]
cpid = ( " %s " % (tsdata[(tnum,cfsize( ' B ' ))])).split( " . " )[0]
cpccmap[cpname] = cpid
def insertData(cpid,cpname, music,actor,copyrightname,ytime,txls,rows):
# print music,actor,cpname,ytime,txls,rows
txls.write(rows,cfsize( ' A ' ),music)
txls.write(rows,cfsize( ' B ' ),actor)
txls.write(rows,cfsize( ' C ' ),cpname)
txls.write(rows,cfsize( ' D ' ),u ' 中国大陆 ' )
txls.write(rows,cfsize( ' E ' ),u ' 无 ' )
txls.write(rows,cfsize( ' F ' ),u ' 否 ' )
txls.write(rows,cfsize( ' G ' ),u ' 否 ' )
txls.write(rows,cfsize( ' H ' ),u ' 无 ' )
txls.write(rows,cfsize( ' I ' ),ytime.split( ' ' )[0])
txls.write(rows,cfsize( ' J ' ),u ' 无 ' )
txls.write(rows,cfsize( ' K ' ), ' 0 ' )
txls.write(rows,cfsize( ' L ' ),u ' 许可 ' )
txls.write(rows,cfsize( ' M ' ), ' 200 ' )
txls.write(rows,cfsize( ' N ' ),u ' 许可 ' )
txls.write(rows,cfsize( ' O ' ), ' 0 ' )
txls.write(rows,cfsize( ' P ' ),u ' 许可 ' )
txls.write(rows,cfsize( ' Q ' ), ' 0 ' )
txls.write(rows,cfsize( ' U ' ),copyrightname)
txls.write(rows,cfsize( ' V ' ), ' 100% ' )
txls.write(rows,cfsize( ' W ' ),cpname)
txls.write(rows,cfsize( ' X ' ), ' 100% ' )
cpmap = {}
for tsdata in sheets :
try :
sdata = tsdata[ 1 ]
# 按行数 迭代
for tnum in range(max([tmp[0] for tmp in sdata]))[ 1 :]:
cpid = sdata[(tnum,cfsize( ' C ' ))]
cpname = sdata[(tnum,cfsize( ' D ' ))] # .upper()
music = sdata[(tnum,cfsize( ' E ' ))]
actor = sdata[(tnum,cfsize( ' F ' ))]
copyrightname = sdata[(tnum,cfsize( ' H ' ))]
ytime = sdata[(tnum,cfsize( ' K ' ))]
if not cpmap.has_key(cpname) :
tmpf = bmug( " cp -r 0000_20090602/ data3/ " + cpid + " _20090602/ " )
os.system(tmpf)
txls = Workbook()
tsheet = txls.add_sheet(u ' 版权列表 ' )
cpmap[cpname] = [txls, 1 , ' data3/ ' + cpid + u ' _20090602/产品信息/ ' + cpid + ' _20090602_01_copyright.xls ' ,tsheet]
titles = ' 歌曲名称 演唱者 提供者 授权区域 电子化版权信息(有/无) 需要DRM处理(是/否) 支持二次开发(是/否) 相关版权合同记录(有/无) 授权期限 全曲授权 全曲价格 彩铃授权 彩铃价格 IVR授权 IVR价格 振铃授权 振铃价格 ISRC UPC ICPN 词曲著作权权利人一 词曲比例一 录音权权利人一 录音比例一 词曲著作权权利人二 词曲比例二 录音权权利人二 录音比例二 词曲著作权权利人三 词曲比例三 录音权权利人三 录音比例三 其它 ' .split( ' \t ' )
for ttnum in range(len(titles)):
tsheet.write(0,ttnum,g2u(titles[ttnum]))
insertData(cpid,cpname, music,actor,copyrightname,ytime,tsheet, 1 )
else :
tsheet = cpmap[cpname][ 3 ]
cpmap[cpname][ 1 ] = cpmap[cpname][ 1 ] + 1
insertData(cpid,cpname, music,actor,copyrightname,ytime,tsheet,cpmap[cpname][ 1 ])
except :
print " [error]: " , music,actor,cpname,ytime,txls
pass
for tkey in cpmap.keys() :
ct = cpmap[tkey]
print ct[ 2 ]
ct[0].save(ct[ 2 ])
import os
sheets = parse_xls( ' xls/版权确认清单表20090601.3.xls ' )
cpcc = parse_xls( ' xls/CP对应表.xls ' )
g2u = lambda str : str.decode( ' gbk ' )
bmug = lambda str : unicode(str).encode( " gbk " )
def cfsize(cha):
if len(cha)==1:
return ord(cha)-ord( ' A ')
else :
fsize=0
fnum=cfsize( ' Z ')+1
cc=list(cha)
for tnum in range(len(cc)):
fsize+=fnum*tnum+cfsize(cc[tnum])
return fsize
cpccmap
=
{}if len(cha)==1:
return ord(cha)-ord( ' A ')
else :
fsize=0
fnum=cfsize( ' Z ')+1
cc=list(cha)
for tnum in range(len(cc)):
fsize+=fnum*tnum+cfsize(cc[tnum])
return fsize
tsdata = cpcc[0][ 1 ]
for tnum in range(max([tmp[0] for tmp in tsdata]))[:]:
cpname = tsdata[(tnum,cfsize( ' A ' ))]
cpid = ( " %s " % (tsdata[(tnum,cfsize( ' B ' ))])).split( " . " )[0]
cpccmap[cpname] = cpid
def insertData(cpid,cpname, music,actor,copyrightname,ytime,txls,rows):
# print music,actor,cpname,ytime,txls,rows
txls.write(rows,cfsize( ' A ' ),music)
txls.write(rows,cfsize( ' B ' ),actor)
txls.write(rows,cfsize( ' C ' ),cpname)
txls.write(rows,cfsize( ' D ' ),u ' 中国大陆 ' )
txls.write(rows,cfsize( ' E ' ),u ' 无 ' )
txls.write(rows,cfsize( ' F ' ),u ' 否 ' )
txls.write(rows,cfsize( ' G ' ),u ' 否 ' )
txls.write(rows,cfsize( ' H ' ),u ' 无 ' )
txls.write(rows,cfsize( ' I ' ),ytime.split( ' ' )[0])
txls.write(rows,cfsize( ' J ' ),u ' 无 ' )
txls.write(rows,cfsize( ' K ' ), ' 0 ' )
txls.write(rows,cfsize( ' L ' ),u ' 许可 ' )
txls.write(rows,cfsize( ' M ' ), ' 200 ' )
txls.write(rows,cfsize( ' N ' ),u ' 许可 ' )
txls.write(rows,cfsize( ' O ' ), ' 0 ' )
txls.write(rows,cfsize( ' P ' ),u ' 许可 ' )
txls.write(rows,cfsize( ' Q ' ), ' 0 ' )
txls.write(rows,cfsize( ' U ' ),copyrightname)
txls.write(rows,cfsize( ' V ' ), ' 100% ' )
txls.write(rows,cfsize( ' W ' ),cpname)
txls.write(rows,cfsize( ' X ' ), ' 100% ' )
cpmap = {}
for tsdata in sheets :
try :
sdata = tsdata[ 1 ]
# 按行数 迭代
for tnum in range(max([tmp[0] for tmp in sdata]))[ 1 :]:
cpid = sdata[(tnum,cfsize( ' C ' ))]
cpname = sdata[(tnum,cfsize( ' D ' ))] # .upper()
music = sdata[(tnum,cfsize( ' E ' ))]
actor = sdata[(tnum,cfsize( ' F ' ))]
copyrightname = sdata[(tnum,cfsize( ' H ' ))]
ytime = sdata[(tnum,cfsize( ' K ' ))]
if not cpmap.has_key(cpname) :
tmpf = bmug( " cp -r 0000_20090602/ data3/ " + cpid + " _20090602/ " )
os.system(tmpf)
txls = Workbook()
tsheet = txls.add_sheet(u ' 版权列表 ' )
cpmap[cpname] = [txls, 1 , ' data3/ ' + cpid + u ' _20090602/产品信息/ ' + cpid + ' _20090602_01_copyright.xls ' ,tsheet]
titles = ' 歌曲名称 演唱者 提供者 授权区域 电子化版权信息(有/无) 需要DRM处理(是/否) 支持二次开发(是/否) 相关版权合同记录(有/无) 授权期限 全曲授权 全曲价格 彩铃授权 彩铃价格 IVR授权 IVR价格 振铃授权 振铃价格 ISRC UPC ICPN 词曲著作权权利人一 词曲比例一 录音权权利人一 录音比例一 词曲著作权权利人二 词曲比例二 录音权权利人二 录音比例二 词曲著作权权利人三 词曲比例三 录音权权利人三 录音比例三 其它 ' .split( ' \t ' )
for ttnum in range(len(titles)):
tsheet.write(0,ttnum,g2u(titles[ttnum]))
insertData(cpid,cpname, music,actor,copyrightname,ytime,tsheet, 1 )
else :
tsheet = cpmap[cpname][ 3 ]
cpmap[cpname][ 1 ] = cpmap[cpname][ 1 ] + 1
insertData(cpid,cpname, music,actor,copyrightname,ytime,tsheet,cpmap[cpname][ 1 ])
except :
print " [error]: " , music,actor,cpname,ytime,txls
pass
for tkey in cpmap.keys() :
ct = cpmap[tkey]
print ct[ 2 ]
ct[0].save(ct[ 2 ])
本文转自博客园刘凯毅的博客,原文链接:python excel 操作,如需转载请自行联系原博主。