python 读写excel文件(pandas/xlrd/xlwt/openpyxl)

python 读写excel文件(pandas/xlrd/xlwt/openpyxl)

1、读取 excel 文件

(1)read_excel

import pandas as pd
data = pd.read_excel(r'D:\学习\python\file\excel\data.xlsx')

(2)xlrd

import xlrd
workbook = xlrd.open_workbook(r'D:\学习\python\file\excel\data.xlsx')  # 打开excel文件
sheet = workbook.sheets()[0]       # 打开sheet(第一个sheet)
data = df()
for i in range (1,sheet.nrows):
    rowvalues = sheet.row_values(i)
    data = data.append([rowvalues], ignore_index = True)
data.columns = sheet.row_values(0)

(3)openpyxl

import openpyxl
from openpyxl import load_workbook
workbook = load_workbook(r'D:\学习\python\file\excel\data.xlsx')
sheet = workbook[workbook.sheetnames[0]]
data = df()
for row in sheet.rows:
    rowvalues = [cell.value for cell in row]
    data = data.append([rowvalues], ignore_index = True)
data.columns =[cell.value for cell in list(sheet.rows)[0]]
data.drop(0,inplace = True)

注:
(1)read_excel:读取excel文件
     args:
          io: 路径
          sheet_name:读取的 sheet 名,默认0(‘Sheet1’),也可设置为提取的表名称
          header:指定行作为列名,默认0(第一行),也可设置header = [3]:将第三行设置为字段名
          index_col:指定列为索引列
          names: 指定列的名字, names = [“a”,“b”,“c”]

(2)xlrd:读取,支持 xlsx

  • 获取所有的sheet名字:
    workbook.sheet_names()
  • 获取第一个sheet:
    sheet = workbook.sheet_names()[0]
    sheet = workbook.sheet_by_index(1)
    sheet = workbook.sheet_by_name(‘Sheet1’)
  • 获取sheet的名字、行数、列数
    sheet.name、sheet.nrows、sheet.ncols
  • 获取第一行内容
    rows = sheet.row_values(0)
  • 获取第一列内容
    cols = sheet.col_values(0)
  • 获取单元格内容(第2行,第2列数据)
    sheet.cell(1,1).value.encode(‘utf-8’)
    sheet.cell_value(1,1).encode(‘utf-8’)
    sheet.row(1)[1].value.encode(‘utf-8’)
  • 获取单元格内容的数据类型
    sheet.cell(1,3).ctype
    0: empty, 1 string, 2 number, 3 date, 4 boolean, 5 error
  • 读取日期数据
    import xlrd
    from xlrd import xldate_as_tuple
    import datetime as dt
    sheet.cell(1,0).ctype
    date_value = xlrd.xldate_as_tuple(sheet.cell_value(1,2), 0) # ①是数据,②有两种取值,0是以1900-01-01为基准的日期,1是以1904-01-01为基准的日期
    dt.date(*date_value[:3])
    dt.date(*date_value[:3]).strftime(’%Y/%m/%d’)

(3)openpyxl:读写,仅支持 xlsx 格式,不需要安装 excel 软件

  • 获取所有的sheet名字:
    workbook.sheetnames
  • 获取第一个sheet:
    sheet = workbook[‘Sheet1’]
    sheet = workbook.get_sheet_by_name(‘Sheet1’)
    sheet = workbook[workbook.sheetnames[0]]
  • 获取sheet的名字、行数、列数
    sheet.title、sheet.max_row、sheet.max_column
  • 获取第一行内容
    rows = [cell.value for cell in list(sheet.rows)[0]]
  • 获取第一列内容
    cols = [cell.value for cell in list(sheet.columns)[0]]
  • 获取单元格内容(第2行,第2列数据)
    sheet.cell(2,2).value
    sheet[‘B2’].value

(4)xlwings:支持 xls、xlsx 格式,需要安装有 excel 软件,依赖于 pywin32

2、写入 excel 文件

(1)to_excel

data.to_excel(r'D:\学习\python\file\excel\data_toexcel.xlsx')

(2)xlwt

import xlwt
writeBook = xlwt.Workbook(encoding='utf-8')
sheet = writeBook.add_sheet("mysheet", cell_overwrite_ok = True)
for m in range(0, data.shape[0]):
    for n in range(data.shape[1]):
            sheet.write(m, n, data.iloc[m,n])
writeBook.save(r'D:\学习\python\file\excel\data_xlwt.xls')

(3)openpyxl

writeBook = openpyxl.Workbook()
sheet = writeBook.active
for i in range(len(data)):
	sheet.append(list(data.iloc[i,:]))
writeBook.save(r'D:\学习\python\file\excel\data_openpyxl.xlsx')

注:
(1)to_excel:
     args:
     sheet_name:写入的 sheet 名,默认0(‘Sheet1’)
     na_rep: 缺失值填充,可以设置为数值、字符串,na_rep = 1,na_rep = ‘null’
     header:指定行作为列名,默认0(第一行)
     index:是否显示index,默认True(显示index)
     index_label:指定列为索引列
     float_format: 默认为None,float_format=’%.2f’ : 保留两位小数

(2)xlwt:写入支持 xls,只能创建一个新的 excel 文件,然后将内容写入这个文件

想知道更多,请关注我的公众号~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值