读取我一般用xlrd
(仅支持读),修改用openpyxl
(支持读写改),写用xlsxwriter
(仅支持写 )
xlrd
:pip install xlrd
openpyxl
:pip install openpyxl
xlsxwriter
:pip install xlsxwriter
安装在此就不过多介绍了,新手可以参考Ipython
的安装过程:https://blog.csdn.net/COCO56/article/details/81058483
获取所有sheet的名字
import xlrd #导入库
workbook = xlrd.open_workbook('test.xlsx') #打开当前文件夹下的test.xlsx
sheetnames = workbook.sheet_names() #获取该文件的所有sheet名(返回的是一个列表 )
print(sheetnames) #打印所有sheet的名字的列表
通过索引顺序获取Sheet
worksheet=workbook.sheet_by_index(0) #索引默认从0开始
通过名字遍历每一个sheet,打印总行数和总列数以及指定单元的值
for sheetN in sheetnames:
sheet = workbook.sheet_by_name(sheetN) #通过名称获取Sheet
print(sheet.nrows, sheet.ncols) #打印此表格(Sheet)的行数和列数
print(sheet.cell(0,0).value) #打印第一行第一列的单元格的值(索引从0开始)
import openpyxl
wb = openpyxl.load_workbook('test.xlsx')
print(wb.get_sheet_names())
ws = wb[wb.sheetnames[0]]
print(ws.max_row)
print(ws.max_column)
print(ws.cell(row=1, column=1).value)
print(ws.cell(1, 1).value) #row=和column=可缺省
ws.cell(1, 1).value = 1
wb.save('test.xlsx')
import xlsxwriter
workbook = xlsxwriter.Workbook('test2.xlsx') #打开一个xlsx文件(如果打开的文件存在 ,则清空该文件,如果文件不存在,则新建)
worksheet = workbook.add_worksheet() #新建一个Sheet(名字缺省的话,默认从Sheet1开始,可以添加自己的sheet名字
worksheet.write(0,0,1) #修改该Sheet的第一行的第一列的元素为1(行号和列号默认从0开始)
workbook.close()#最后关闭文件
1.openpyxl设置单元格大小(行高和列宽):https://blog.csdn.net/COCO56/article/details/84590544
官方文档:https://xlsxwriter.readthedocs.io/
import xlsxwriter
wb = xlsxwriter.Workbook('test.xlsx')
cell_format_wrap = wb.add_format({'text_wrap':True})
cell_format_vcenter = wb.add_format({'valign':'vcenter'})
cell_format_center = wb.add_format({'align':'center'})
cell_format_vcenter_and_center = wb.add_format({'align':'center', 'valign':'vcenter'})
ws = wb.add_worksheet()
ws.write(0, 0, 'data', cell_format_wrap)
worksheet.set_column('A:B', 20) # 设置A到B列的列宽全为20
worksheet.set_column(1, 3, 30) # Width of columns B:D set to 30.