Python3中的Excel表格操作

一、2003以前的表格以.xls后缀,用xlwt来写表格,用xlrd来读取表格;2007的表格以.xlsx后缀,用openpyxl来读写表格。

二、xlrd使用介绍

1、导入模块
  import xlrd
2、打开Excel文件读取数据
  data = xlrd.open_workbook('excelFile.xls')
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 #单元格的值'

三、代码试例

#!/usr/bin/python
# coding:utf-8
# @author : csl
# @date   : 2018/03/26 22:02
'''Excel表格操作'''

# 读写.xls表格03-07版
import xlrd
import xlwt
# 读写.xlsx表格07版
import openpyxl

def write_03_Excel(file_path):
    wb = xlwt.Workbook()  #打开excel文件
    sheet = wb.add_sheet("测试表格2003")  #添加表格名称
    value = [["姓名", "年龄", "电话", "婚姻状况"],
             ["范彬彬", "22", "18888888888", "已婚"],
             ["袁姗姗", "25", "18999999999", "未婚"],
             ["刘德华", "50", "17777777777", "已婚"],
             ["张学友", "55", "15555555555", "已婚"],
             ["郭富城", "55", "13333333333", "已婚"]]
    for i in range(0, len(value)):
        for e in range(0, len(value[i])):
            sheet.write(i, e, value[i][e])  #i、e分别表示行和列
    wb.save(file_path)
    print("写入表格成功!")


def read_03_Excel(file_path):
    wb = xlrd.open_workbook(file_path)  #打开excel文件
    r_sheet = wb.sheet_names()  #查找所有的表名
    work_sheet = wb.sheet_by_name(r_sheet[0])  #通过表名找到第一张表
    for i in range(0, work_sheet.nrows):  #循环所有行
        row = work_sheet.row(i)  #获取第i行
        for j in range(0, work_sheet.ncols):  #循环所有的列
            print(work_sheet.cell_value(i, j), "\t", end="")  #获取行和列的cell
        print()


def wirte_07_Excel(file_path):
    wb = openpyxl.Workbook()  #打开文件
    sheet = wb.active  #激活sheet表格
    sheet.title = "测试表格2007"  #添加sheet表格名称
    value = [["姓名", "年龄", "电话", "婚姻状况"],
             ["范彬彬", "22", "18888888888", "已婚"],
             ["袁姗姗", "25", "18999999999", "未婚"],
             ["刘德华", "50", "17777777777", "已婚"],
             ["张学友", "55", "15555555555", "已婚"],
             ["郭富城", "55", "13333333333", "已婚"]]
    for i in range(0, len(value)):
        for j in range(0, len(value[i])):
            sheet.cell(row=i+1, column=j+1, value=str(value[i][j]))  #写入单元格
    wb.save(file_path)
    print("写入07表格成功")


def read_07_Excel(file_path):
    wb = openpyxl.load_workbook(file_path)  #打开文件
    # sheet = wb.get_sheet_by_name("测试表格2007")
    sheet = wb["测试表格2007"]  #通过sheet名称锁定表格
    for row in sheet.rows:  #循环所有的行
        for cell in row:  #循环行中所有的单元格
            print(cell.value, "\t", end="")  #获取单元格的值
        print()

file_03_excel = "./data/03excel.xls"
file_07_excel = "./data/07excel.xlsx"
write_03_Excel(file_03_excel)
read_03_Excel(file_03_excel)
wirte_07_Excel(file_07_excel)
read_07_Excel(file_07_excel)






评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值