Python使用xlrd,xlwt操作excel例子

'''
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

你可能感兴趣的:(Python)