导入
import xlrd #导入xlrd模块
import xlrd as xl #将xlrd命名为xl,后续可以直接使用xl来代表xlrd
from xlrd import open_workbook #导入xlrd模块中的open_workbook
from xlrd import open_workbook as owb #导入xlrd模块中的open_workbook,并命名为owb,续可以直接使用owb来代表open_workbook
读
import xlrd #导入xlrd模块
wb=xlrd.open_workbook('test0.xlsx') #读取名为test0.xlsx工作簿
wsobj=wb.sheets() #读取工作簿下的所有工作表对象
wsname=wb.sheet_names() #读取工作簿下的所有工作表名称
ws1=wb.sheet_by_name('客户信息') #按指定名称读取工作表对象-way1
ws2=wb.sheet_by_index(0) #按指定序号读取工作表对象-way2
ws3=wb.sheets()[0] #按指定序号读取工作表对象-way3
print(ws1) #打印ws1
ws4=xlrd.open_workbook('test0.xlsx').sheet_by_name('客户信息') #读取名为test0.xlsx工作簿,并按指定名称读取工作表对象
row=ws4.nrows #获取行数
col=ws4.ncols #获取列数
row_data=ws4.row_values(0) #获取指定行数值
col_data=ws4.col_values(1) #获取指定列数值
cell_data=ws4.cell(1,1) #获取单元格数据(含数据类型)
cell_data1=ws4.cell_value(1,1) #获取单元格数据的值-方法1
cell_data2=ws4.cell(1,1).value #获取单元格数据的值-方法2
print(cell_data) #打印cell_data: text:'3416211989' 即 数据类型 数值
- 序号从0开始
写
import xlwt #引入xlwt模块
wb=xlwt.Workbook(encoding='utf-8') #创建工作簿(excel文件),设置编码,注意Workbook大写
ws=wb.add_sheet('成绩表') #创建名为“成绩表"的表单(sheet)
ws.write(0,0,'姓名') #在第一行第一列写入“姓名”,注意,0代表第一个,(行,列,'内容')
wb.save('信息汇总.xls') #保存工作簿,命名为“信息汇总”;注意xlwt只能创建.xls工作簿,不可以创建xlsx
wb.save(r'E:\Python\exceltest\信息汇总.xls') #将文件保存于E盘指定位置
读写
import xlrd #导入xlrd模块
from xlutils.copy import copy #导入xlutils中的复制模块
wb=xlrd.open_workbook('test0.xlsx') #读取要修改的工作簿
ws=wb.sheet_by_name('Sheet1') #读取工作表 @@@只读不写:xlrd模块下的
nwb=copy(wb) #复制工作簿
nws1=nwb.add_sheet('新表格') #新建工作表sheet
nws2=nwb.get_sheet(0) #按序号读取sheet
nws3=nwb.get_sheet('Sheet1') #按表名读取工作表 @@@只写不读:xlwt模块下的
nws1.write(0,0,'value') #将数据写入指定单元格cell中
nwb.save('test0.xls') #保存工作表;
- 新工作簿名可以和原工作簿名相同,保存运行后会覆盖原工作簿,命名不一样则另存工作簿;
- 命名相同的情况下,保存运行代码时,被修改的工作簿必须关闭。
print(type(ws))
print(type(nws3))
'''
<class 'xlrd.sheet.Sheet'> 只读不写
<class 'xlwt.Worksheet.Worksheet'> 只写不读
'''