Python读写Excel

xlrd模块读取excel

处理流程

1. 导入模块
2. 打开Excel文件读取数据
3. 获取一个工作表
sheet = book.sheets()[0]          #通过索引顺序获取
sheet = book.sheet_by_index(0) #通过索引顺序获取
sheet = book.sheet_by_name(u'Sheet1')#通过名称获取

4.获取整行和整列的值(数组)
sheet.row_values(i)
sheet.col_values(i)

5.获取行数和列数
nrows = sheet.nrows
ncols = sheet.ncols

6.循环行列表数据
for i in range(nrows ):
  print table.row_values(i)

7.获取单元格
cell_A1 = table.cell(0,0).value 
cell_A1 = table.row(0)[0].value
cell_C4 = table.cell(2,3).value
cell_A2 = table.col(2)[3].value

8.简单的写入
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 #单元格的值'

xlwt模块写入excel

处理流程

1. 导入xlwt模块
2. 新建一个excel文件
file = xlwt.Workbook()
3. 新建一个sheet
table = file.add_sheet('sheet name')

4. 写入数据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)

5. 保存文件
file.save('demo.xls')

6.其它使用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到整行格子中.

示例demo

# -*- coding:utf-8 -*-
#!/usr/bin/python
'''
Script Name     : parsexls.py
Author          : svoid
Created            : 2015-02-25
Last Modified    : 
Version            : 1.0
Modifications    : 
Description    : 处理读写Excel
'''

import xlrd     #读取Excel
import xlwt     #写入Excel
import codecs
import os

'''
Description        :读取Excel内容并保存到文本文件中
@param textfilename:写入文本文件
@param xlsname     :读取Excel文件
@return 无
'''
def readxls(excelName,textfilename):
  #打开Excel文件读取数据
  book = xlrd.open_workbook(excelName)
  for i in range(len(book.sheets())):
    sheet = book.sheets()[i]
    nrows = sheet.nrows     #读取工作页行数
    ncols = sheet.ncols     #读取工作页列数
    for i in range(nrows):
      info = ''
      for j in range(len(sheet.row_values(i))):
        if isinstance(sheet.row_values(i)[j],(int,float,complex)):
          info += str(int(sheet.row_values(i)[j]))+'\t'
        else:
          info += sheet.row_values(i)[j]+'\t'
      print(info)
      saveFile(textfilename,info)

'''
Description    : 将数据按行保存到文件中
@param savefilename:保存文件内容文本文件
@param data :需要保存的数据
@return 无
'''
def saveFile(savefilename,data):
  f=codecs.open(savefilename,"a","utf-8")
  f.writelines(data)
  f.writelines('\n')
  f.close()

'''
Description    : 文本转换成Excel的函数
@param filename:输入文本文件
@param excelName :输出Excel文件
@return 无
'''
def txt2xls(filename,excelName):
  f = codecs.open(filename,'r','gbk')
  x = 0
  y = 0
  xls = xlwt.Workbook()
  sheet = xls.add_sheet('个人信息',cell_overwrite_ok=True)
  while True:
    line = f.readline()    #读取文本行内容
    print(line)
    if not line :
      break
    for i in line.split('\t'):
      item = i.strip()
      sheet.write(x,y,item)
      y += 1
    x += 1
    y = 0

  f.close()   #读取完成之后关闭文件
  xls.save(excelName)

if __name__ == '__main__':

  readxls("D:\\test.xlsx","D:\\test.txt")
  txt2xls("D:\\test1.txt","D:\\test1.xls")

整理自网络

svoid
2015-02-25

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29733787/viewspace-1441414/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29733787/viewspace-1441414/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值