安装:

pip install openpyxl

excel表中有图像,需要安装pillow库。

pip install Pillow

代码:

from openpyxl import Workbook

wb = Workbook()

# grab the active worksheet

ws = wb.active

# Data can be assigned directly to cells

ws[‘A1‘] = 42

# Rows can also be appended

ws.append([1, 2, 3])

# Python types will automatically be converted

import datetime

ws[‘A2‘] = datetime.datetime.now()

# Save the file

wb.save("sample.xlsx")

openpyxl模块使用:

创建一个工作簿:

from openpyxl import Workbook

wb = Workbook()

工作簿最少有一个工作表:

openpyxl.workbook.Workbook.active()

ws = wb.active

wb的_active_sheet_index 属性,默认情况下为0.来获取第一个工作表。

修改值之后,可以获取该值对应的工作表。

也可以创建一个新的工作表,需要使用openpyxl.workbook.Workbook.create_sheet() method

// 添加一个新的工作表:

#在默认工作表后面创建一个新的工作表。

ws1 = wb.create_sheet("twosheet")

#在默认工作表前面创建一个新的工作表。0 为索引值。

ws2 = wb.create_sheet(‘onesheet‘,0)

在创建工作表时,默认自动命名sheet1,sheet2,...

可使用title属性更改sheet1,sheet2,....等名称。

例如:

ws1.title = "2sheet"

默认情况下,title的背景颜色为白色,可更改为:

可以将此提供RRGGBB颜色代码更改为sheet_properties.tabColor属性: 该效果我没有做出来,有待研究。

ws.sheet_properties.tabColor = "1072BA"

你可以把一个创建之后的工作表的名字,作为工作簿的一个键。

ws3 = wb[‘onesheet‘]

print(ws3)

输出值为:

说明你可以选择使用哪个工作表来写入数据。

查看工作簿的所有工作表的名称:

openpyxl.workbook.Workbook.sheetnames() property

print(wb.sheetnames) #打印出来为list。

可以选择循环浏览工作表名称:

for sheet in wb:

print(type(sheet.title))

print(sheet.title)

#打印出来为str.

可以在单个工作簿中创建工作表副本:

openpyxl.workbook.Workbook.copy_worksheet() method:

source = wb.active

target = wb.copy_worksheet(source)

#默认将工作表添加到末尾。

注意:

只有单元格(包括值,样式,超链接和注释)和某些工作表属性(包括尺寸,格式和属性)被复制。所有其他工作簿/工作表属性不会被复制 - 例如图片,图表。

您不能在工作簿之间复制工作表。如果工作簿以只读或只写模式打开,您也无法复制工作表。

####插入数据

访问单元格并修改单元格内容:

单元格可以作为工作表的键直接访问。

ws = wb[‘Sheet‘]

print(ws)

注意:

访问之前,必须先让其工作在Sheet工作表上。

c = ws[‘A4‘]

print(c)

这将返回A4处的单元格或创建一个,如果它尚不存在。值可以直接分配:

ws[‘A4‘] = 4

还有

openpyxl.worksheet.Worksheet.cell() method.

这使用行和列表示法提供对单元格的访问权限:

d = ws.cell(row=4,column=2,value=10)

print(type(d))

print(d)

注意:

当工作表在内存中创建时,它不包含单元格。它们在第一次访问时创建。

由于这个特性,即使没有为它们赋值,通过滚动单元格而不是直接访问它们也会在内存中创建它们。

for i in range(1,101):

for j in range(1,101):

ws.cell(row=i,column=j)

print(type(j))

print(j)

#将在内存中创建100x100的单元格,无需任何操作。

可以使用切片访问单元格的范围:

cell_range = ws[‘A1‘:‘C2‘]

print(type(cell_range))

print(cell_range)

#type is tuple.

行或列的范围可以类似地获得:

colC = ws[‘C‘]

col_range = ws[‘C:D‘]

row10 = ws[10]

row_range = ws[5:10]

也可以用:

openpyxl.worksheet.Worksheet.iter_rows() method:

for row in ws.iter_rows(min_row=1,max_col=3,max_row=2):

for cell in row:

print(cell)

openpyxl.worksheet.Worksheet.iter_cols()

method will return columns:

for col in ws.iter_rows(min_row=1,max_col=3,max_row=2):

for cell in col:

print(cell)

需要遍历文件的所有行或列,使用

openpyxl.worksheet.Worksheet.rows() property:

#遍历文件的所有行

ws = wb.active

ws[‘C9‘] = ‘li yuan jie‘

print(tuple(ws.rows))

or use

openpyxl.worksheet.Worksheet.columns() property:

#遍历文件的所有列:

ws = wb.active

ws[‘C9‘] = ‘li yuan jie‘

print(tuple(ws.columns))

#####Data storage

openpyxl.cell.Cell, we can assign it a value:

c = ws[‘A1‘] #指定A1单元格

c.value = ‘li yuan jie‘

print(c.value)

d = ws[‘B1‘]

d.value = 3.14

print(d.value)

也可以启用类型和格式推断:

c = ws[‘A2‘]

c.value = ‘12%‘

print(type(c.value)) #type is str

print(c.value)

import datetime

d = ws[‘B2‘]

d.value = datetime.datetime.now()

print(type(d.value)) #type is ‘datetime.datetime‘

print(d.value)

c.value = ‘31.50‘

print(type(c.value)) #type is str

print(c.value)

Saving to a file

The simplest and safest way to save a workbook is by using the:

openpyxl.workbook.Workbook.save() method of the openpyxl.workbook.Workbook object:

wb = Workbook()

wb.save(‘onepyxl.xlsx‘)

注意: 此操作将覆盖现有文件。

可以指定属性template = True,将工作簿保存为模板:

wb = load_workbook(‘document.xlsx‘)

wb.template = True

wb.save(‘document_template.xltx‘)

或将此属性设置为False(默认),以另存为文档:

wb = load_workbook(‘document_template.xltx‘)

wb.template = False

wb.save(‘document.xlsx‘, as_template=False)

注意: excel表的数据属性和扩展名。

####加载一个文件

导入

openpyxl.load_workbook() to open an existing workbook:

from openpyxl import load_workbook

wb2 = load_workbook(‘onepyxl.xlsx‘)

print(wb2.sheetnames)

如有不足之处,请指正。

python3打开excel_python3操作Excel (一)相关推荐

  1. qt 进程打开excel_Qt 操作Excel

    Qt对Excel的数据读/写操作没有现存的类,需要使用QAxObject,下面是从网上下载下来的一个封装好的类,感觉还可以,一般情况下够用,拿来给大家分享. 头文件: #ifndef EXCELENG ...

  2. python3打包成exe把openpyxl和pandas_Python openpyxl、pandas操作Excel方法简介与具体实例...

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  3. python3.4在windows系统上使用xlwings操作Excel出现FullName错误解决方案

    python语言虽好,也号称跨平台,由于python使用时,往往需要很多内裤,东一个西一个,就像犀利哥身上的衣服,打满了补丁,常常遇到各种莫名其妙的八哥,很是令人头疼.最近我需要用python操作ex ...

  4. python3.8安装xlwings_Python操作Excel的Xlwings教程(一)

    在日常的工作中,我们或多或少的都要和Excel打交道.甚至在一些领域,某一些业务人员的主要工作就是处理Excel表格,处理大量的Excel数据并生成一系列的报表.对于程序员朋友们来说,更喜欢以代码的形 ...

  5. qt 进程打开excel_Qt QAxObject操作excel文件过程总结(转):(示例代码)

    正好同事问道Qt下操作excel. 转自:http://blog.csdn.net/a156392343/article/details/48092515 配制方面: 1.确保Excel软件在本地服务 ...

  6. Python openpyxl打开有公式的excel表取值错误的解决办法,Python openpyxl获取excel有公式的单元格的数值错误,Python操作excel(.xlsx)封装类

    Python openpyxl打开有公式的表格,如果直接读取,会出现有公式的单元格为空或零的情况. 参见: https://blog.csdn.net/weixin_45903952/article/ ...

  7. python3操作excel(xls与xlsx版本的爱恨情仇)

    python3操作excel 背景 大概操作说明 操作xls的代码 背景 本来一直是使用go来搞的.毕竟我不会py.但是excel文件格式比较久,是xls的.目前go语言操作xls存在问题,就是某单元 ...

  8. 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化

    [Python数据分析]Python3操作Excel(二) 一些问题的解决与优化 参考文章: (1)[Python数据分析]Python3操作Excel(二) 一些问题的解决与优化 (2)https: ...

  9. python3 写入excel_Python3 读、写Excel文件的操作方法

    首先,简单介绍一下EXECL中工作簿和工作表的区别: 工作簿的英文是BOOK(WORKBOOK),工作表的英文是SHEET(WORKSHEET). •一个工作簿就是一个独立的文件 •一个工作簿里面可以 ...

最新文章

  1. C语言中整型浮点型在计算机中的存储
  2. zabbix 安装_zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署
  3. 商汤联手华科:提出文字检测模型GNNets,新颖模块可解决几何分布难题
  4. c++趣味小程序_工具类小程序10天增长103万全复盘
  5. about hamout cloudra
  6. 网络知识 | 《图解HTTP》读书笔记(上)
  7. 关于避免对toString()结果进行解析或基于逻辑的美德
  8. MineCraft和堆外内存
  9. 【UVA - 1335】Beijing Guards (贪心,二分)
  10. 神秘使者到Java帝国传道协程,竟被轰了出去
  11. B站在美上市 A站却为融资心塞
  12. 帝国7.5标签+在PHP7.0,帝国CMS7.5支持PHP7.*系列,兼容性更好
  13. 使用ILSpy软件反编译.Net应用程序的方法及注意事项
  14. c#实现打印功能,可以设置纸张大小,字体和颜色等
  15. 转载:EM算法的最精辟讲解
  16. Android开发常用开源框架
  17. java mina框架实例_MINA框架简介和一个简单的例子
  18. JavaScript Date相关练习
  19. 复制粘贴,快速将Python程序打包成exe
  20. 傅立叶变换的实质-正交之美

热门文章

  1. CSDN之人人code,整数取反
  2. 【数据结构】数据结构知识思维导图
  3. Java并发编程实战~不安全的单例
  4. MATLAB显示错误使用untitled,使用Matlab 2016a阻止集合构建错误
  5. clickhouse的ReplacingMergeTree引擎实战
  6. 五大质量工具详解及运用案例_掌握质量管理五大工具,实现九段质量管理成长...
  7. [人工智能教程] 人工智能暑期课实践项目建议
  8. 软件工程练习:模块化,单元测试,回归测试,TDD
  9. python中有数组吗_python有数组吗
  10. 上海电力学院计算机技术,上海电力学院计算机与信息工程学院介绍