Python读写excel数据(xlrd,xlwt,pandas)

最近频繁遇到一些处理excel读写的问题。这里把我遇到到两种方法做一个简单的总结。


  • 使用xlrd和xlwt读写Excel文件

要使用xlrd和xlwt这两个模块,需要首先安装,使用pip安装,具体就不赘述了。

'''
Read and write Excel using xlrd and xlwt
'''
__author__ = "wayne"

import xlrd
import xlwt
  
fileName = r"test.xlsx"
bk = xlrd.open_workbook(fileName)

try:
 sh = bk.sheet_by_name("论坛")
except:
 print("no sheet in %s named Sheet1" % fileName)
 
#获取行数
nrows = sh.nrows
#获取列数
ncols = sh.ncols

print("行数: %d, 列数: %d" % (nrows,ncols))

  
row_list = []

#获取各行数据
for i in range(1,nrows):
 row_data = sh.row_values(i) 
 row_list.append(row_data)

for j in range(ncols):
    for i in row_list:    
        print(i[j])

print("使用cell函数-----------------------------------------------------------")
for m in range(1,nrows):
    for n in range(ncols):
        
        print(sh.cell(m,n).value)


#下面的代码是写操作,我们把上面获得的数据写入到一个新的excel中
writeBook= xlwt.Workbook(encoding='utf-8')
sheet = writeBook.add_sheet("document",cell_overwrite_ok=True)
style = xlwt.XFStyle()

for m in range(0,nrows):
    for n in range(ncols):
        sheet.write(m, n, sh.cell(m,n).value)
writeBook.save("new_output.xls")
  • 使用pandas读写Excel文件

Pandas 本身是一个很强大的数据处理工具。这里我们用它来处理excel赶脚有点大材小用。

'''
Read and write Excel using pandas
'''
__author__ = "wayne"

import  pandas  as pd
from pandas import DataFrame


df=pd.read_excel('test.xlsx',sheetname=1) #读取第2个sheet
print(format(df))



print("读取所有sheet name-------------------------------")

ReadSheets=pd.ExcelFile('test.xlsx')
for i in ReadSheets.sheet_names:
    print(i)


print("按照sheet名称读取------------------------------")

data = pd.read_excel('test.xlsx', sheet_name = 'news')
print(data)


'''
pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)

'''

print("写数据------------------------------------")
DataFrame(df).to_excel("new_excel.xlsx",sheet_name='guess', index=False, header=True)

对于df数据,我们可以做一些处理以后再写到新的表里面。

新增列 df['列名称']

新增行 df.loc[行数] =[]

# 删除列,需要指定axis为1,当删除行时,axis为0

df= df.drop('列名称', axis=1)

df= df.drop([1, 3], axis=0)

猜你喜欢

转载自blog.csdn.net/wangweimic/article/details/87344803