python操作excel函数openpyxl和xlwt/xlrd
区别一:
xlwt/xlrd对excel文件.xls操作比较好,但对.xlsx操作存在一些问题;
openpyxl对.xlsx操作较好。
区别二:
对文件的读取操作不一样
这里有两个文件分别以.xlsx和.xls结尾
1.openpyxl函数文件操作:
##openpyxl读取文件操作
import openpyxl
wb = openpyxl.load_workbook('GDP.xlsx') ##文件路径根据自己的保存路径写入,路径要自己手动输入,要不然会报错
sheet = wb.get_sheet_by_name('Sheet1') ##获取当前工作表
'''
分别获取A1,B1,C1的值
'''
print(sheet['A1'].value)
print(sheet['B1'].value)
print(sheet['C1'].value)
#########################################################
'''
连续获取A1,A2,A3的值,同时将获取的函数改成sheet.cell(row=,column=).value
'''
for i in range(1,4,1):
print(sheet.cell(row=i,column=1).value)
#########################################################
'''
分别获取最大行数和最大列数
'''
print(sheet.max_column) ##获取最大列数
print(sheet.max_row) ##获取最大行数
#########################################################
'''
在excel表中写入数据,在D1处写入6,在D2处写入你好
'''
sheet.cell(row=1,column=4).value = '6'
sheet.cell(row=2,column).value = '你好'
########################################################
'''
保存文件
'''
wb.save('GDP.xlsx')
结果:
OBJECTID
POPULATION
GDP
OBJECTID
1
2
3
185
xlwt/xlrd函数文件操作:
import xlrd
import xlwt
wb = xlrd.open_workbook('.xls')
sheet = wb.sheet_by_index(0) ##获取第一个表
print(sheet)
########################################################
'''
输出表单名字,列数,行数
'''
print(sheet)
print(sheet.name,sheet.ncols,sheet.nrows)
#######################################################
'''
获取表单中A1,B2中的值
'''
print(sheet.cell(0,0).value)
print(sheet.cell(1,1).value)
#######################################################
'''
获取第一行数据和第二列数据
'''
print(sheet.row_values(0))
print(sheet.col_values(1))
######################################################
'''
创建一个新工作簿,并写入相关数据
'''
excel = xlwt.Workbook(encoding='utf-8')
#新建一个sheet1
sheet1 = excel.add_sheet('sheet1')
##在A1和B1中分别写入1和你好
sheet1.write(0,0,'1')
sheet1.write(0,1,'你好')
##保存
excel.save('GDP1.xls')
结果:
<xlrd.sheet.Sheet object at 0x00000229D4C98308>
Sheet1 3 185
OBJECTID
96848.0
['OBJECTID', 'POPULATION', 'GDP']
['POPULATION', 96848.0, 54361.0, 56556.0, 47416.0, 68533.0, 52000.0, 59602.0, 227523.0, 69820.0, 33910.0, 65338.0, 49126.0, 223015.0, 82505.0, 43690.0, 44554.0, 35869.0, 47643.0