1. 加载excel

import openpyxl
from openpyxl.utils import get_column_letter,column_index_from_string
from openpyxl.styles import Font,PatternFill
import os # 加载example.xlsx,参数data_only=False表示如果单元格是公式,则显示公式,而不是公式的计算结果
wb = openpyxl.load_workbook('example.xlsx',data_only=False) # 列出所有sheet名称,返回一个list
sheets = wb.sheetnames
print('Sheets:',sheets) # sheet对象,获取激活的sheet
activesheet = wb.active
# 打开特定的sheet
ws = wb['sheetName']
# 获取sheet的名称
print(activesheet.title) # 获取单元格对象
a1 = activesheet['A1'] # 单元格的值
print(a1.value) # 获取单元格对象的行列,以及单元格名称,coordinate返回单元格的名称。
print(a1.row,a1.column,a1.coordinate,sep=',') # 根据 行列 来定位一个单元格
a2 = activesheet.cell(row=2,column=2)
print('A2 value:',a2.value) # 获取表中的最大行数和列数
highest = activesheet.max_row
wid = activesheet.max_column
print('MaxRow,MaxCol:',highest,wid) # 转换列名和数字
print(get_column_letter(77),column_index_from_string('AA')) # 使用切片来获取一个区域,返回元组形式
field = activesheet['A1':'C3']
print('Field:',field) for x in activesheet['A1':'C3']: # 先获取元组的元素:一行的所有单元格(元组格式)
for y in x: # 再获取元组的每一个元素:单元格
print(y.coordinate,y.value) wb.save('new.xlsx') # 保存文件

2. 创建新的excel文件

import openpyxl
from openpyxl.utils import get_column_letter,column_index_from_string
from openpyxl.styles import Font,PatternFill
import os # 创建写入excel
if os.path.exists('new.xlsx'):
os.unlink('new.xlsx') # 如果存在 new.xlsx ,先删除 # 创建工作簿对象
wb = openpyxl.Workbook() # 获取激活的表单
active = wb.active # 获取sheet名称
print(active.title) # 给sheet重命名
active.title = 'Abc' # 创建带索引的sheet,也就是sheet表单的顺序,索引为1代表放在第一个
wb.create_sheet(index=1,title='New_sheet')
wb.create_sheet(index=2,title='New_sheet2') # 获取所有sheet名
sheets = wb.get_sheet_names
print(sheets) # 删除一个工作表
wb.remove(wb['New_sheet2'])
for x in range(1,100): # 写入excel
active.cell(row=x,column=1,value=x) # 设置单元格样式
active.row_dimensions[1].height = 30 # 设置行高
active.column_dimensions['A'].width = 30 #设置列宽 # 合并单元格并赋值
active.merge_cells('A1:C1')
active['A1'] = 'hebkdjyrge' #拆分单元格
active.unmerge_cells('A1:C1') # 冻结 A3 以前的单元格,即 A1 和 A2 冻结
active.freeze_panes = 'A3' # 设置字体
geui = Font(size=15,name='Arial',bold=True,italic=False,color='FFFFFF')
colorr = PatternFill('solid',bgColor='4F4F4F')
active['A1'].fill = colorr
active['A1'].font = geui # 创建图表,没搞明白
for i in range(1,11):
active['A'+str(i)] = i
refObj = openpyxl.chart.Reference(active, min_row=1, min_col=1, max_row=10, max_col=1)
seriesObj = openpyxl.chart.Series(refObj, title='First series')
chartObj = openpyxl.chart.BarChart()
chartObj.title = 'My Chart'
chartObj.append(seriesObj) active.add_chart(chartObj, 'C5') # C5表示图标开始位置 wb.save('new.xlsx') # 保存文件

3. 读取Excel的某import openpyxl

import shutil
import sys def read_Excel(file,row=2,*col):
'''
file: excel的文件名
row:默认从第几行开始,比如第一行是title,则可以从第二行开始
*col: 列名,获取哪些列的数据
'''
case_list = {}
workbook = openpyxl.load_workbook(file)
sheet0 = workbook.active # 获取当前激活的工作表
highest = sheet0.max_row # 获取表单有数据的最大行数
first_col = col[0] # 第一个列参数
for i in range(row,highest+1):
value_list = []
v1 = sheet0[first_col+str(i)].value
# 除去第一列的其他列
for j in range(1,len(col)):
v2 = sheet0[col[j]+str(i)].value
value_list.append(v2)
case_list[v1] = value_list
print(case_list)
return case_list read_Excel('结果.xlsx',2,'a','b','c')

待处理数据:

结果:

{'N1': ['B1', 'C1'], 'N2': ['B2', 'C2'], 'N3': ['B3', 'C3']}

python openpyxl 简单使用的更多相关文章

  1. python制作简单excel统计报表2之操作excel的模块openpyxl简单用法

    python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...

  2. python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...

  3. Python爬虫简单实现CSDN博客文章标题列表

    Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...

  4. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  5. 用 python实现简单EXCEL数据统计

    任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_ ...

  6. python开启简单webserver

    python开启简单webserver linux下面使用 python -m SimpleHTTPServer 8000 windows下面使用上面的命令会报错,Python.Exe: No Mod ...

  7. Python开发简单爬虫 - 慕课网

    课程链接:Python开发简单爬虫 环境搭建: Eclipse+PyDev配置搭建Python开发环境 Python入门基础教程 用Eclipse编写Python程序   课程目录 第1章 课程介绍 ...

  8. python使用简单http协议来传送文件

    python使用简单http协议来传送文件!在ubuntu环境下,局域网内可以使用nc来传送文件,也可以使用基于Http协议的方式来下载文件我们可以使用python -m SimpleHTTPServ ...

  9. Python超简单的HTTP服务器

    Python超简单的HTTP服务器 安装了python就可以 python -m SimpleHTTPServer 执行这一个命令即可实现一个HTTP服务器,将当前目录设为HTTP服务目录,可以通过h ...

随机推荐

  1. 设置ubuntu14.04命令行启动

    编辑文件"/etc/default/grub",  把 GRUB_CMDLINE_LINUX_DEFAULT="quiet"  改成GRUB_CMDLINE_L ...

  2. loadrunner 场景设计-手工场景方案(Schedule)设计 Part 1

    参考:http://blog.sina.com.cn/s/articlelist_5314188213_1_1.html loadrunner 场景设计-手工场景方案(Schedule)设计 Part ...

  3. 修改ubuntu终端显示目录和计算机名称(转)

    注意:使用方法:# PS1='自定义内容' 注意两边的单引号 示例: PS1='(\u@\H \d \t)\$' ------------------------------------------- ...

  4. Flex TabNavigator

    1.获取子项个数 TabNavigator.numChildren(int) 2.对于静态的TabNavigator的如何处理权限显示 for(var i:int=0;i <tab.numChi ...

  5. Activity启动场景Task分析(二)

    场景分析 下面通过启动Activity的代码来分析一下: 1.桌面 首先,我们看下处于桌面时的状态,运行命令: adb shell dumpsys activity 结果如下 ACTIVITY MAN ...

  6. Autumn is deep, alas! I stand on the grass in the shadow of the evergreen trees.

    essence. n. 本质 flush.n. 脸红 v. 刷洗 initiate.v.开始 intrinsic.固执的 mainfest.a.显然的 intuition.n.直觉上的 refrain ...

  7. Python Basics with Numpy

    Welcome to your first assignment. This exercise gives you a brief introduction to Python. Even if yo ...

  8. jenkins pipline和jenkinsfile

    Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中. Jenkins Pipeline 提供了一套可扩展 ...

  9. HDU 1003 Max Sum (动态规划 最大区间和)

    Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  10. tp5框架用foreach循环时候报Indirect modification of overloaded element of think\paginator\driver\Bootst错误

    thinkphp5使用paginator分页查询数据后,需要foreach便利处理某一字段的数据,会出现类似题目的错误.主要是因为tp5使用分页类读取的数据不是纯数组的格式!所以在循环的时候需要用数据 ...