python简单Excel操作

以此为例:

1. workbook对象

wb = openpyxl.load_workbook(fileName) 

 属性:

sheetsNames = wb.sheetnames 所有表的名字
sheets = wb.worksheets      所有的表
activeSheet = wb.active     当前活跃的表
isReadOnly = wb.read_only   判断是否以只读方式打开Excel
encoding = wb.encoding      文档的字符集编码
props = sb.properties       文档元数据(标题、创建者、时间)

方法:

wb.remove_sheet(wb['表1'])  #参数为sheet对象,删除一个表
wb.create_sheet(3,'表3')    #增加一个表

2. sheet对象

sheet = wb['表1']  获取一个表

属性:

sheet.title         #表格标题
sheet.dimensions    #表格大小, 左上角坐标:右下角坐标  A1:D4
sheet.max_row       #表格最大行数
sheet.min_row       #表格最小行数
sheet.max_column    #表格最大列数
sheet.min_column    #表格最小列数
sheet.freeze_panes  #冻结窗格
sheet.rows          #按行获取单元格(Cell对象)
sheet.columns       #按列获取单元格(Cell对象)
sheet.values        #按行获取表格的内容(数据)

(1)遍历

  ①按行

for i in sheet.rows:
    for j in range(0,sheet.max_column):
        print(i[j].value,end=',')
    print('')

  

  ②按列

for i in sheet.columns:
    for j in range(0,sheet.max_row):
        print(i[j].value,end=',')
    print('')

  

  ③ sheet.values

for i in sheet.values:
    print(i)

  

(2)冻结窗格

方法:

  (1)获取单元格cell

sheet.cell(row,col)  #第row行第col列的单元格
sheet['B3']          #第3行第2列的单元格
sheet.iter_rows(min_row,max_row,min_col,max_col)    #在矩形区域内,一次取得一行的单元格组成一个元组              
sheet.iter_columns(min_col,max_col,min_row,max_row) #一列单元格组成一个元组

  后面两个方法,一次获得一个元组,元组的每个元素为一个cell

  例:获取2行2列到4行3列的区域

rows = []
for row in sheet1.iter_rows(2,4,2,3):
    rows.append(row)
for row in rows:
    for i in range(len(row)):
        print(row[i].value,end=' ')
    print('')

  

cols = []
for col in sheet1.iter_cols(2,3,2,4):
    cols.append(col)
for col in cols:
    for i in range(len(col)):
        print(col[i].value,end=' ')
    print('')

  

  (2)获取一块区域

cells = sheet['B2:C4']  #B2到C4之间的区域
cells = sheet[2:4]      #第2行到第4行之间的区域
cells = sheet['B:D']    #第B列到第D列之间的区域

  以sheet[2:4]为例:返回的是元组:  ((A2,B2,C2) , (A3,B3,C3) ,(A4,B4,C4))

  (3)其它操作

  ①增加行、删除行、增加列、删除列

sheet.insert_rows(rowNum,amount)  #从第rowNum行起插入amount行空行
sheet.delete_rows(rowNum,amount)  #从第rowNum行起删除amount行

sheet.insert_cols(colNum,amount)
sheet.delete_cols(colNum,amount)

3. 单元格cell对象

cell = sheet['B3']     #第3行第2列
cell = sheet.cell(3,2)

  tips:Excel行数是数字,而列是字母

属性:

row:单元格所在行         #4
column:单元格所在列      #3
value:单元格的值         #
coordinate:单元格的坐标  #C4

 修改单元格的值:

cell.value='newValue'
sheet['D3']='newValue'
sheet.cell(3,4,'newValue')

wb.save(filename)  #保存

猜你喜欢

转载自www.cnblogs.com/taoXiang/p/13377675.html