Excel表单的处理
首先是要安装 openpyxl 模块用 pip install openpyxl 指令在任意壳执行就好
Import openpyxl as xl
1、wb = xl.load_workbook(“xxx.xlsx”)//读取表格,返回一个工作簿对象
Sheetlist = wb.worksheets // 转化得到所有表单组成的列表
Sheetname = wb.sheetnames // 得到所有表单的名字列表
获取第一个表单,可以通过数组索引
Sheet = sheetlist[0]
获取表格最大行数
row = sheet.max_row
获取表格最大列数
col = sheet.max_column(好像比实际列数大1)
表单的名字
Name = sheet.title
2、新建一个表单
创建工作台
wb = xl.Workbook()
wb.create_sheet(“name”)
如果重名了,他会自动改名的
3、删除一个表单
(1)先找到表达 sheet = wb[sheet_name]
(2)Wb.remove(sheet)
或者直接用 del wb[sheet_name]
4、获取行和列
Sheet[1] ,sheet[‘A’] 是分别获取1行和1列
# 获取第 1 行
>>> sheet[1]
(测试页'.A1>, 测试页'.B1>, 测试页'.C1>, 测试页'.D1>)
# 获取第 1 列
>>> sheet['A']
(测试页'.A1>, 测试页'.A2>, 测试页'.A3>, 测试页'.A4>)
可以看到是里面是先列后行
5、遍历所有cell的方法
(1) 通过sheet.rows 获取所有行,注意,应为这个行不是一个列表,所有不用用索引指向每个cell
for row in cursheet.rows:
for cell in row:
print(cell.value)
(2) 把sheet.rows 转化成list 即 list(sheet.rows)这样就可以通过下标访问了
row_list = list(cursheet.rows)
# row_list[0][0].value = '李汉俊'
for i in range(currow):
for j in range(len(row_list[i])-1):
print(row_list[i][j].value)
注意row_list[i][j] 只是一个元组对,必须用.value 才能访问里面的值
6、表单值的写入
其实就是append(list) 就是对每一行进行添加进去
好像每个新的表单,都只是一行一列,所以应该先删掉第一行
for i in range(len(matrix)):
sheet2.append(matrix[i])
wb.save('myexcel.xlsx')
最后要保存,表格才真正写入
关于字典的一些函数
1、 fromkey(list [], value) 这个是建一个以list 为key,初始值为value的字典
2、 Py3 已经没有has_key(key) 这个函数了,用 key in dict 代替,返回值为true or false
3、 用setdefault(key,value) 创建字典对,记住没有大写
import openpyxl as xl
def test_openpyxl():
wb = xl.Workbook()
# 默认有一个名字为Sheet的表单
sheetlist = wb.worksheets
sheetname = wb.sheetnames
# sheet = wb.create_sheet("sheet1")
sheet = sheetlist[0]
titles = ['size/M','speed/ms','final_planes', 'acc', 'mAP', 'r1', 'r5', 'r10', 'loss',
'acc', 'mAP', 'r1', 'r5', 'r10', 'loss','acc', 'mAP', 'r1', 'r5', 'r10', 'loss']
sheet.append(titles)
value = [1,3,4,5]
value.insert(1,2)
sheet.append(value)
wb.save("test.xlxs")