美文网首页
python-openpyxl常用方法

python-openpyxl常用方法

作者: 万疆璃火 | 来源:发表于2020-11-26 11:31 被阅读0次

参考文档:https://segmentfault.com/a/1190000022194006
https://www.jianshu.com/p/3f348b7552a7

使用openpyxl创建一个数据表
''' 使用openpyxl创建一个数据表'''
from openpyxl import Workbook,load_workbook

wb = Workbook()        '''创建一个全新的工作簿'''

ws = wb.active         '''获取当前的工作sheet,即上一步创建的工作表中的sheet,默认获取第一个sheet'''
print(wb)
print(wb.sheetnames)    '''获取工作簿的所有sheetname'''

wb.save(r"E:\工作\test\openpyxl_test.xlsx")      '''保存到指定路径指定文件名'''
创建新的sheet
'''创建新的sheet'''

wb.create_sheet()   '''默认创建一个sheet,默认命名为sheet1,sheet2...'''

'''创建一个名字为sheet的sheet页,但是如果已经存在此名字的sheet则会命名为sheet1,sheet2...'''
wb.create_sheet("sheet")  

'''创建一个名为"mysheet"的sheet,0代表在最前端创建,成为第一个sheet页'''
wb.create_sheet("mysheet",0) 

'''创建一个名为"mysheet"的sheet,-1代表在倒数第二个位置创建,成为倒数第二个sheet页'''
wb.create_sheet("mysheet",-1)
更改原有的sheet名
'''首先需要在创建新的sheet时给他一个返回接收值'''
ws = wb.creat_sheet("new_sheet")
'''然后使用title方法更改sheet名'''
ws.title = "new_name"
'''此时的sheetname为[new_name]'''
copy一个sheet
print("你可以遍历整个工作簿。。。")
for sheet in wb:
    '''copy指定的sheet只有单元格(包括值、样式、超链接、备注)
      和一些工作表对象(包括尺寸、格式和参数)会被复制。
      其他属性不会被复制,如图片、图表。无法在两个工作簿中复制工作表。
      当工作簿处于只读或只写状态时也无法复制工作表。'''
    target = wb.copy_worksheet(sheet) 
    print("sheet_name:"+sheet.title)
print("sheetname:{}".format(wb.sheetnames))    
print('创建所有表的副本。。。')
加载原有的工作簿
'''加载原有的工作簿'''
wb2 = load_workbook(r"E:\工作\test\openpyxl_test.xlsx")
print("sheetname:{}".format(wb.sheetnames))
对数据进行操作
'''对数据进行操作'''
print("通过sheet名获取sheet。。。")
ws2 = wb["title"]
print(ws2)
print("访问一个单元格,此时c为A4处单元格对象,并非单元格内的值如果此单元格尚未存在则会创建一个,
        访问即创建,所以可以直接赋值。。。")
c = ws2["A4"]
print('给单元格赋值。。。')
ws2["A4"] = 4
print(c)
'''保存,如果不保存赋值的数据将不会出现在数据表中'''
wb.save(r"E:\工作\test\openpyxl_test.xlsx")
print("通过行列号访问单元格,设置value则值为value的值,没有则为数据表中原有值。。。")
d = ws2.cell(row=4,column=1,value=10)
print(d)
wb.save(r"E:\工作\test\openpyxl_test.xlsx")


print("可以通过切片获取多个单元格。。。")
range = ws2['A1':'C2']
print(range)

print("获取A列数据。。。")
range = ws2['A']
print(range)

print("获取A列和B列数据。。。")
range = ws2['A':'B']
print(range )

print("获取第4行数据。。。")
range = ws2[4]
print(range)

print("获取第4行和第5行数据。。。")
range = ws2[4:5]
print(range)
Worksheet.iter_rows() and Worksheet.iter_cols()
print('使用Worksheet.iter_rows()方法获取指定范围内的行')
for rows in ws2.iter_rows(min_row=2, min_col=2,max_col=3, max_row=3):#起始行,起始列,结束列,结束行
    print(rows)

print('使用Worksheet.iter_cols()方法获取指定范围内的列')
for rows in ws2.iter_cols(min_row=2, min_col=2,max_col=3, max_row=3):#起始行,起始列,结束列,结束行
    print(rows)
image.png
print('获取所有的行和列。。。。')
ws2['C9'] = 'hello world'
print(tuple(ws2.rows))

print(tuple(ws2.columns))

print('获取单元格的值...')
for row in ws2.values:
    for i in row:
        print("value....")
        print(i)
        
print('使用Worksheet.iter_rows()方法获取指定范围内的行,只返回单元格的值。。。')
for rows in ws2.iter_rows(min_row=2, min_col=2,max_col=4, max_row=10,values_only=True):#起始行,起始列,结束列,结束行
    print(rows)
    
print('使用Worksheet.iter_cols()方法获取指定范围内的列,只返回单元格的值。。。')
for rows in ws2.iter_cols(min_row=2, min_col=2,max_col=4, max_row=10,values_only=True):#起始行,起始列,结束列,结束行
    print(rows)
    
print("通过行列号访问单元格。。。")
d = ws2.cell(row=4,column=1)
print(d)
print('给单元格赋值。。。')
d.value = '3.1415926'
print('获取指定单元格的值。。。')
for rows in ws2.iter_rows(min_row=4, min_col=1,max_col=1, max_row=4,values_only=True):#起始行,起始列,结束列,结束行
    print(rows)

相关文章

网友评论

      本文标题:python-openpyxl常用方法

      本文链接:https://www.haomeiwen.com/subject/djlaiktx.html