Python3 进行读取、修改和写Excel表格(.xlsx文件)的常用功能示例

文章目录

  • 1. 按
  • 2. 安装命令
  • 3. 常用功能:
    • 3.1. 基础功能
      • 3.1.1. xlrd
      • 3.1.2. openpyxl
      • 3.1.3. xlsxwriter
    • 3.2. 进阶功能
      • 3.2.1. openpyxl
      • 3.2.2. xlsxwriter

1. 按

读取我一般用xlrd(仅支持读),修改用openpyxl(支持读写改),写用xlsxwriter(仅支持写 )

2. 安装命令

xlrd:pip install xlrd
openpyxl:pip install openpyxl
xlsxwriter:pip install xlsxwriter
安装在此就不过多介绍了,新手可以参考Ipython的安装过程:https://blog.csdn.net/COCO56/article/details/81058483

3. 常用功能:

3.1. 基础功能

3.1.1. xlrd

  • 获取所有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开始)
    

3.1.2. openpyxl

  • 加载一个已存在的文件的例子(如果是需要新建的可以使用openpyxl.Workbook(‘hello.xlxs‘),不过单纯新建的话建议用xlsxwriter)并打印Sheet_names
    import openpyxl
    wb = openpyxl.load_workbook('test.xlsx')
    print(wb.get_sheet_names())
    
  • 接着上面的代码,访问第一个worksheet,获取该sheet的最大行数和最大列数(此外还有:min_row:表格的最小,min_column:表格的最小列,rows:按行获取单元格(Cell对象) - 生成器,columns:按列获取单元格(Cell对象) - 生成器,values:按行获取表格的内容(数据) - 生成器)
    ws = wb[wb.sheetnames[0]]
    print(ws.max_row)
    print(ws.max_column)
    
  • 打印第一行第一列的单元格的值(注意是从1开始,不是从0开始,另外 row=和column=可缺省)
    print(ws.cell(row=1, column=1).value)
    print(ws.cell(1, 1).value)    #row=和column=可缺省
    
  • 修改第一行第一列的单元格的值为1并保存(可以等全部修改完之后再保存,不需要每次修改都保存一下)
    ws.cell(1, 1).value = 1
    wb.save('test.xlsx')
    

3.1.3. xlsxwriter

  • 打开文件,添加sheet并写入数据
    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()#最后关闭文件
    

3.2. 进阶功能

3.2.1. openpyxl

1.openpyxl设置单元格大小(行高和列宽):https://blog.csdn.net/COCO56/article/details/84590544

3.2.2. xlsxwriter

官方文档:https://xlsxwriter.readthedocs.io/

  1. 设置自动换行、水平居中和垂直居中
    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)
    
  2. 设置列宽
    worksheet.set_column('A:B', 20) # 设置A到B列的列宽全为20
    worksheet.set_column(1, 3, 30)  # Width of columns B:D set to 30.
    

你可能感兴趣的:(Python)