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

本文详细介绍了Python中使用pandas、xlrd、xlwt和openpyxl库读写Excel文件的方法。通过read_excel、xlrd.open_workbook、openpyxl.load_workbook等函数,演示了读取Excel数据到DataFrame的过程,并展示了如何利用to_excel、xlwt.Workbook和openpyxl.Workbook写入数据到Excel文件。同时,提供了各种库中获取单元格内容、处理日期数据和设置列名的技巧。
摘要由CSDN通过智能技术生成

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、付费专栏及课程。

余额充值