python excel 操作

简介:
参考:
显示   【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 " )
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 = {}
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 操作,如需转载请自行联系原博主。



 


目录
相关文章
|
2月前
|
Python
Python办公自动化:xlwings对Excel进行分类汇总
Python办公自动化:xlwings对Excel进行分类汇总
55 1
|
2月前
|
Python
Python自动化:xlwings合并Excel
Python自动化:xlwings合并Excel
42 0
|
18天前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
37 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
8天前
|
Python
python读写操作excel日志
主要是读写操作,创建表格
18 2
|
27天前
|
Python
Python 自动化操作 Excel - 02 - xlwt
Python 自动化操作 Excel - 02 - xlwt
38 14
|
27天前
|
Python
Python 自动化操作 Excel - 03 - xlutils
Python 自动化操作 Excel - 03 - xlutils
30 13
|
1月前
|
数据处理 Python
Python 高级技巧:深入解析读取 Excel 文件的多种方法
在数据分析中,从 Excel 文件读取数据是常见需求。本文介绍了使用 Python 的三个库:`pandas`、`openpyxl` 和 `xlrd` 来高效处理 Excel 文件的方法。`pandas` 提供了简洁的接口,而 `openpyxl` 和 `xlrd` 则针对不同版本的 Excel 文件格式提供了详细的数据读取和处理功能。此外,还介绍了如何处理复杂格式(如合并单元格)和进行性能优化(如分块读取)。通过这些技巧,可以轻松应对各种 Excel 数据处理任务。
99 16
|
27天前
|
Python
Python 自动化操作 Excel - 01 - xlrd
Python 自动化操作 Excel - 01 - xlrd
33 9
|
26天前
|
IDE 开发工具 数据安全/隐私保护
Python编程--实现用户注册信息写入excel文件
Python编程--实现用户注册信息写入excel文件
16 1
|
20天前
|
索引 Python
Excel学习笔记(一):python读写excel,并完成计算平均成绩、成绩等级划分、每个同学分数大于70的次数、找最优成绩
这篇文章是关于如何使用Python读取Excel文件中的学生成绩数据,并进行计算平均成绩、成绩等级划分、统计分数大于70的次数以及找出最优成绩等操作的教程。
48 0