Python使用xlrd,xlwt操作excel例子

本文介绍了一个使用Python实现的Excel文件解析脚本,该脚本能够读取指定路径下的Excel文件,并通过不同的方法按索引或名称获取指定工作表中的数据。文章提供了完整的代码示例,展示了如何将Excel表格中的数据转换为易于处理的字典列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'''
Created on 2014-11-6

@author: Administrator
'''
import xdrlib,sys,os
import xlrd
from socket import *
from time import ctime
import socket
import base64
import xlwt

reload(sys)
sys.setdefaultencoding("utf-8")

class ExcelParser:
    def open_excel(self,file='src_table.xls'):
        try:
            data=xlrd.open_workbook(file)
            return data
        except Exception as e:
            print "open excel file %s failed. %s" %(file,str(e))
            print str(e)
    
    #file:Excel file path
    #colnameindex: 
    def excel_table_byindex(self,file='src_table.xls',colnameindex=0,by_index=0):
        data = self.open_excel(file)
        table = data.sheets()[by_index]
        nrows = table.nrows #line
        ncols = table.ncols #col
        colnames =  table.row_values(colnameindex) #get 
        list =[]
        for rownum in range(1,nrows):
     
            row = table.row_values(rownum)
            if row:
                app = {}
                for i in range(len(colnames)):
                    app[colnames[i]] = row[i] 
                list.append(app)
        return list
     
    #file:Excel
    #colnameindex:,by_name:Sheet1
    def excel_table_byname(self,file='src_table.xls',colnameindex=0,by_name=u'Sheet1'):
        data = self.open_excel(file)
        table = data.sheet_by_name(by_name)
        nrows = table.nrows #line count
        colnames =  table.row_values(colnameindex) # 
        list =[]
        for rownum in range(1,nrows):
            row = table.row_values(rownum)
            if row:
                app = {}
                for i in range(len(colnames)):
                    app[colnames[i]] = row[i]
                list.append(app)
        return list

if __name__ == '__main__':
    path="D:\\ips.xls"
    parser=ExcelParser()
    tables = parser.excel_table_byindex(path,0,0)
    for row in tables:
        print str(row['PapName'])
        try:
            print u"%s\t%s" %(str(row['ID']),str(row['REQ']))
        except Exception as ex:
            print "read %s error. %s" %(str(row['ID']),str(ex))
            continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值