主要内容
许多时候,一般我们将数据存储在一个文件中,如txt文件、excel文件、json文件等。
如果是一个.txt或.json这样类型的文本文件,读取然后利用正则表达式将其过滤就可以了。如果是Excel呢?
一个Excel肯定不能向一个文本文件那样进行处理,当然许多关于读取excel的模块,针对2007版以后的excel,即以.xlsx结尾的,可以使用openpyxl模块
所以,需要先安装openpyxl这一模块
创建一个excel文件
文件:excel_1.py
__author__ = 'simfg'
from openpyxl import Workbook
def main():
# 创建一个excel工作簿
wb = Workbook()
# 创建一个默认表格
ws = wb.active
# 存储这个工作簿
wb.save('openpyxl-1.xlsx')
if __name__ == '__main__':
main()
运行该文件,就会发现在该目录下多了一个xlsx文件
excel创建多个表格
__author__ = 'simfg'
from openpyxl import Workbook
from openpyxl.worksheet import Worksheet
def main():
wb = Workbook()# type: Workbook
ws = wb.active# type: Worksheet
# 修改表格名称
ws.title = 'First Sheet'
# 添加表格tab添加颜色,当然也有一些其他样式可以试
ws.sheet_properties.tabColor = 'ff0000'
# 创建度多个表格的方法,其中第二个参数表示表格序号
ws2 = wb.create_sheet('Second Sheet')
ws3 = wb.create_sheet('Third Sheet',5)
wb.save('openpyxl-1.xlsx')
if __name__ == '__main__':
main()
注意:没有修改文件名,它会将以存在的文件覆盖掉
execl 数据存储
__author__ = 'simfg'
from openpyxl import Workbook
from openpyxl import load_workbook
def main():
# 读取excel
wb = load_workbook('openpyxl-1.xlsx')# type: Workbook
# 获取所有表格
print(wb.worksheets)
# 获取第一个表格
ws = wb['First Sheet']
# 往第一行第一列写入'aaa'
ws['A1'] = 'aaa'
# 往第一行第二列写入'bbb'
ws.cell(None,1,2,'bbb')
# 这种方式也许更加清楚有一点
ws.cell(row=1, column=3, value='bbb')
wb.save('openpyxl-1.xlsx')
if __name__ == '__main__':
main()
Note: ws[‘A1’]含义,其中A表示第一列,1表示第一行
excel 数据读取
__author__ = 'simfg'
from openpyxl import Workbook
from openpyxl import load_workbook
def main():
# 读取excel
wb = load_workbook('openpyxl-1.xlsx') # type: Workbook
ws = wb.get_sheet_by_name('First Sheet')
# 获取所有的行
for row in ws.rows:
for cell in row:
print("*******")
print(cell.value)
print('-------')
# 获取所有的列
for col in ws.columns:
for cell in col:
print('*******')
print(cell.value)
# 获取某个单元格的值
print(ws.cell('A1').value)
print(ws.cell(row=1,column=2).value)
if __name__ == '__main__':
main()
合并单元格
from openpyxl import Workbook
from openpyxl import load_workbook
def main():
# 读取excel
wb = load_workbook('openpyxl-1.xlsx') # type: Workbook
ws = wb.get_sheet_by_name('First Sheet')
# 合并单元格
ws.merge_cells('A2:B2')
ws.merge_cells(start_row=3, start_column=1, end_row=5, end_column=3)
wb.save('openpyxl-1.xlsx')
if __name__ == '__main__':
main()
扫描左侧二维码,关注个人公众号:SimFG