excel文件读写-python

PYTHON-excel

                                                                   ---------风逸尘@罗


前言
Excel文件是一种二进制文件。需要安装第三方模块对excel文件进行读写。
那么,我们要使用第三方模块首先就要安装,使用windows命令窗口用下列语句行进行安装第三方模块

pip install xlwt
pip install xlrd
pip install xlutils

下面可以进行操作啦!^_^

一、xlwt模块写xls文件

1.将一个表格中的的内容写入excel文件中

序号 代码名称
1 -600536中国软件
2 -300170汉得信息
3 -600756浪潮软件
4 -300302逸尘科技
步骤及代码如下:
#导入模块
import xlwt
#创建工作簿
workbook=xlwt.Workbook(encoding='gbk')
#创建工作表
sheet1=workbook.add_sheet('sheet1',cell_overwrite_ok='True')
#用元组保存写入数据
d_tuple=(('序号','代码','名称'),\
         ('1','600536','中国软件'),\
         ('2','300170','汉得信息'),\
         ('3','600756','浪潮科技'),\
         ('4','520py','逸尘科技'))
#将元组数据逐行写入单元
for i in range(len(d_tuple)):
    for j in range(len(d_tuple[0])):
        sheet1.write(i,j,d_tuple[i][j])
#保存
workbook.save('zhangyuan.xls')
  • 小结:首先导入模块
import xlwt

,再创建工作簿(workbook=xlwt.Workbook(,encoding='gbk'),工作表(workbook.add_sheet(sheetname[,cell_overwrite_ok=True])),其次,写入文件,最后一步,保存文xls文件,注意文件后缀名。

二、xlrd模块读xls文件

2.将上述文件打印出来

#导入模块
import xlrd
#打开文件,获取工作簿
workbook=xlrd.open_workbook('zhangyuan.xls')
#获取工作表数量
nsheets=workbook.nsheets
#遍历每个工作表
for i in range(nsheets):
    #获取第i个工作表
    sheet=workbook.sheet_by_index(i)
    #输出当前工作表的名称
    print("第%d个工作表的名称为:%s"%(i+1,sheet.name))
    #获取并打印工作表的行数与列数
    nrows=sheet.nrows
    ncols=sheet.ncols
    print("该工作表的行数:%d列数为:%d"%(nrows,ncols))
    print("该工作表的数据如下:")
    #遍历所有行
    for y in range(nrows):
        #读取第m行数据返回一个列表
        rowVaules=sheet.row_values(y)
        for z in rowVaules:
            print(z,end="\t")
        print()

小结:

  1. 导入模块
  2. 获取工作簿
  3. 遍历获取工作表数量来进行遍历
  4. 得到第i个工作表
  5. 得到工作表的行数后进行遍历
  6. 每遍历一行将其数据返回为一个列表
  7. 这时将进行该列表的遍历并输出

三、xlutils实现两者转化

因为上述使用的xlrd.open_book方法返回的wlrd.Book类型的工作簿是不能修改的,因此需要进行转化。

import xlwt,xlrd,xlutils
import xlutils.copy
rb=xlrd.open_workbook('zhangyuan.xls')
#用xlutils.copy的copy方法,从xlrd.Book对象复制得到xlwt.workbook对象
wb=xlutils.copy.copy(rb)
#获取第0个sheet
sheet1=wb.get_sheet(0)
sheet1.write(0,0,'number')
sheet1.write(0,1,'code')
sheet1.write(0,2,'name')
#添加一个sheet
sheet2=wb.add_sheet('add')
sheet2.write=(0,0,'0')
sheet2.write=(1,1,'1')
sheet2.write=(2,2,'2')
#保存
wb.save('stock_add.xls')

四、openpyxl实现读写xlsx文件

写文件

import openpyxl
#创建一个工作簿,默认包含一个sheet的工作列表
workbook = openpyxl.Workbook()
#找到默认的工作表,创建别的工作表使用create_sheet方法
sheet1=workbook.active
#可以修改工作表的名字
#sheet1.title='new_sheet'
#需要写入的数据保存
d_tuple=(('序号','代码','名称'),\
         ('1','600536','中国软件'),\
         ('2','300170','汉得信息'),\
         ('3','600756','浪潮科技'),\
         ('4','520py','逸尘科技'))
iRows=len(d_tuple)
iCols=len(d_tuple[0])
for row in range(iRows):
    colName='A'
    for col in range(iCols):
        #将信息写入单元格,如sheet1['A1']=d_tuple[0][0]
        sheet1['%s%d'%(colName,row+1)]=d_tuple[row][col]#注意这里不要写成了[0][0],否则将出现全部是第一个’序号‘
        colName=chr(ord(colName)+1)
#将内存中的工作簿对象保存到磁盘中
workbook.save('tock.xlsx')

读文件

import openpyxl
#从xlsx文件中导入工作簿对象
workbook=openpyxl.load_workbook('tock.xlsx')
#从工作簿获得以sheet名为元素的列表
sheetNames=workbook.sheetnames
#遍历每个sheet
for sheetName in sheetNames:
    print("当前工作表的名称为:%s"%sheetName)
    #根据sheet名获取sheet对象
    sheet=workbook[sheetName]
    #遍历sheet中的每个单元格
    for i in range(sheet.max_row):
        for j in range(sheet.max_column):
            print(sheet.cell(row=i+1,column=j+1).value,end='\t')
        print()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值