python接入excel_python读写excel

xlwt

http://pypi.python.org/pypi/xlrd

简单使用

导入xlwt

import xlwt

新建一个excel文件

file = xlwt.Workbook() #注意这里的Workbook首字母是大写,无语吧

新建一个sheet

table = file.add_sheet('sheet name')

写入数据table.write(行,列,value)

table.write(0,0,'test')

如果对一个单元格重复操作,会引发

returns error:# Exception: Attempt to overwrite cell:# sheetname=u'sheet 1' rowx=0 colx=0

所以在打开时加cell_overwrite_ok=True 解决

table = file.add_sheet('sheet name',cell_overwrite_ok=True )

保存文件

file.save('demo.xls')

另外,使用style

style = xlwt.XFStyle() # 初始化样式

font = xlwt.Font() #为样式创建字体

font.name = 'Times New Roman'

font.bold = True

style.font = font #为样式设置字体

table.write(0, 0, 'some bold Times text', style) # 使用样式

xlwt 允许单元格或者整行地设置格式。还可以添加链接以及公式。可以阅读源代码,那里有例子:

dates.py, 展示如何设置不同的数据格式

hyperlinks.py, 展示如何创建超链接 (hint: you need to use a formula)

merged.py, 展示如何合并格子

row_styles.py, 展示如何应用Style到整行格子中.

具体的例子可以看:

google论坛:

下载之后要先编译:cdm,cd xlwt-0.7.4,python setup.py install

import xlwt

wbk = xlwt.Workbook()

sheet = wbk.add_sheet('sheet 1')

# indexing is zero based, row then column

sheet.write(0,1,'test text')

sheet.write(1,1,'test text')

wbk.save('test2.xls') 默认保存在桌面上

————————————————————————————————————————————————

一、安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

二、使用介绍

1、导入模块

import xlrd

2、打开Excel文件读取数据

data = xlrd.open_workbook('excelFile.xls') 默认操作桌面上的excel

3、使用技巧

获取一个工作表

table = data.sheets()[0] #通过索引顺序获取

table = data.sheet_by_index(0) #通过索引顺序获取

table = data.sheet_by_name(u'Sheet1')#通过名称获取

获取整行和整列的值(数组)

table.row_values(i)

table.col_values(i)

获取行数和列数

nrows = table.nrows

ncols = table.ncols

循环行列表数据

for i in range(nrows ):

print table.row_values(i)

单元格

cell_A1 = table.cell(0,0).value

cell_C4 = table.cell(2,3).value

使用行列索引

cell_A1 = table.row(0)[0].value

cell_A2 = table.col(1)[0].value

简单的写入

row = 0

col = 0

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

ctype = 1 value = '单元格的值'

xf = 0 # 扩展的格式化

table.put_cell(row, col, ctype, value, xf)

table.cell(0,0) #单元格的值'

table.cell(0,0).value #单元格的值'

import xlrd

data =xlrd.open_workbook('test2.xls')

table = data.sheets()[0]

print table.nrows

print table.name

for row_index in range(table.nrows):

for col_index in range(table.ncols):

print table.cell(row_index,col_index).value 遍历所有的cell的值

三、Demo代码

Demo代码其实很简单,就是读取Excel数据。

copycode.gif

copycode.gif

1 # -*- coding: utf-8 -*-

2 import xdrlib ,sys

3 import xlrd

4 def open_excel(file= 'file.xls'):

5 try:

6 data = xlrd.open_workbook(file)

7 return data

8 except Exception,e:

9 print str(e)

10 #根据索引获取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的所以 ,by_index:表的索引

11 def excel_table_byindex(file= 'file.xls',colnameindex=0,by_index=0):

12 data = open_excel(file)

13 table = data.sheets()[by_index]

14 nrows = table.nrows #行数

15 ncols = table.ncols #列数

16 colnames = table.row_values(colnameindex) #某一行数据

17 list =[]

18 for rownum in range(1,nrows):

19

20 row = table.row_values(rownum)

21 if row:

22 app = {}

23 for i in range(len(colnames)):

24 app[colnames[i]] = row[i]

25 list.append(app)

26 return list

27

28 #根据名称获取Excel表格中的数据 参数:file:Excel文件路径 colnameindex:表头列名所在行的所以 ,by_name:Sheet1名称

29 def excel_table_byname(file= 'file.xls',colnameindex=0,by_name=u'Sheet1'):

30 data = open_excel(file)

31 table = data.sheet_by_name(by_name)

32 nrows = table.nrows #行数

33 colnames = table.row_values(colnameindex) #某一行数据

34 list =[]

35 for rownum in range(1,nrows):

36 row = table.row_values(rownum)

37 if row:

38 app = {}

39 for i in range(len(colnames)):

40 app[colnames[i]] = row[i]

41 list.append(app)

42 return list

43

44 def main():

45 tables = excel_table_byindex()

46 for row in tables:

47 print row

48

49 tables = excel_table_byname()

50 for row in tables:

51 print row

52

53 if __name__=="__main__":

54 main()

copycode.gif

copycode.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值