python如何安装扩展库openpyxl和numpy_Python第三方库之openpyxl(2)
Python第三方库之openpyxl(2)
简单的使用
写一个工作簿
>>> from openpyxl importWorkbook>>> from openpyxl.compat importrange>>> from openpyxl.utils importget_column_letter>>>
>>> wb =Workbook()>>>
>>> dest_filename = 'empty_book.xlsx'
>>>
>>> ws1 =wb.active>>> ws1.title = "range names"
>>>
>>> for row in range(1, 40):
... ws1.append(range(600))>>>
>>> ws2 = wb.create_sheet(title="Pi")>>>
>>> ws2['F5'] = 3.14
>>>
>>> ws3 = wb.create_sheet(title="Data")>>> for row in range(10, 20):
...for col in range(27, 54):
... _= ws3.cell(column=col, row=row, value="{0}".format(get_column_letter(col)))>>> print(ws3['AA10'].value)
AA>>> wb.save(filename = dest_filename)
View Code
读一个现有的工作簿
>>> from openpyxl importload_workbook>>> wb = load_workbook(filename = 'empty_book.xlsx')>>> sheet_ranges = wb['range names']>>> print(sheet_ranges['D18'].value)3
注意:在loadworkbook中有几个可以使用的标志
1.guess_types 在读取单元时启用或禁用(默认)类型推断
2.data_only 控制带有公式的单元格是否有公式(默认)或上次Excel读取表的值
3.keep_vba 控制任何可视的基本元素是否被保留(默认)。如果它们被保存了它们仍然是不可编辑的
注意:openpyxl目前没有在Excel文件中读取所有可能的项目,因此如果打开并保存相同的名称,那么图像和图表将从现有文件中丢失
使用数字格式
>>> importdatetime>>> from openpyxl importWorkbook>>> wb =Workbook()>>> ws =wb.active>>> #使用Python datetime设置日期
>>> ws['A1'] = datetime.datetime(2010, 7, 21)>>>
>>> ws['A1'].number_format'yyyy-mm-dd h:mm:ss'
>>> #您可以在具体情况下启用类型推断
>>> wb.guess_types =True>>> #使用字符串和%符号设置百分比
>>> ws['B1'] = '3.14%'
>>> wb.guess_types =False>>> ws['B1'].value0.031400000000000004
>>>
>>> ws['B1'].number_format'0%'
使用公式
>>> from openpyxl importWorkbook>>> wb =Workbook()>>> ws =wb.active>>> #添加一个简单的公式
>>> ws["A1"] = "=SUM(1, 1)"
>>> wb.save("formula.xlsx")
注意:你必须使用英文名作为一个函数,函数参数必须用逗号隔开,而不是其他的标点符号,比如分号
openpyxl从来没有计算过公式但是可以检查公式的名称
>>> from openpyxl.utils importFORMULAE>>> "HEX2DEC" inFORMULAE
True
合并/ 分割单元格
>>> from openpyxl.workbook importWorkbook>>>
>>> wb =Workbook()>>> ws =wb.active>>>
>>> ws.merge_cells('A2:D2')>>> ws.unmerge_cells('A2:D2')>>>
>>> #相当于
>>> ws.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4)>>> ws.unmerge_cells(start_row=2, start_column=1, end_row=4, end_column=4)
插入图像
>>> from openpyxl importWorkbook>>> from openpyxl.drawing.image importImage>>>
>>> wb =Workbook()>>> ws =wb.active>>> ws['A1'] = 'You should see three logos below'
>>> #制作一个图片
>>> img = Image('logo.png')
>>> #在单元格旁边添加工作表和锚
>>> ws.add_image(img, 'A1')>>> wb.save('logo.xlsx')
折叠列
>>> importopenpyxl>>> wb =openpyxl.Workbook()>>> ws =wb.create_sheet()>>> ws.column_dimensions.group('A','D', hidden=True)>>> wb.save('group.xlsx')
与pandas和NumPy一起工作
NumPy支持
openpyxl已经为NumPy类型的浮点数、整数和布尔型提供了支持。使用pandas的时间戳类型支持DateTimes
Working with Pandas Dataframes
openpyxl.utils.dataframe.dataframe_to_rows()函数提供了一个简单的方式来处理Pandas Dataframes
from openpyxl.utils.dataframe importdataframe_to_rows
wb=Workbook()
ws=wb.activefor r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
虽然pandas本身支持转换为Excel,但这为客户端代码提供了额外的灵活性,包括将dataframes直接传输到文件的能力。
将一个dataframe转换为高亮显示标题和索引的工作表
wb =Workbook()
ws=wb.activefor r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)for cell in ws['A'] + ws[1]:
cell.style= 'Pandas'wb.save("pandas_openpyxl.xlsx")
或者,如果你只想转换数据你可以使用write-only模式
from openpyxl.cell.cell importWriteOnlyCell
wb= Workbook(write_only=True)
ws=wb.create_sheet()
cell=WriteOnlyCell(ws)
cell.style= 'Pandas'
defformat_first_row(row, cell):for c inrow:
cell.value=cyieldcell
rows=dataframe_to_rows(df)
first_row=format_first_row(next(rows), cell)
ws.append(first_row)for row inrows:
row=list(row)
cell.value=row[0]
row[0]=cell
ws.append(row)
wb.save("openpyxl_stream.xlsx")
View Code
这段代码和标准的工作簿同样适用
将工作表转换为Dataframe
要将工作表转换为Dataframe,您可以使用values属性。如果工作表没有标题或索引,这很容易
df = DataFrame(ws.values)
如果工作表确实有标题或索引,比如由pandas创建的,那么就需要做更多的工作
data =ws.values
cols= next(data)[1:]
data=list(data)
idx= [r[0] for r indata]
data= (islice(r, 1, None) for r indata)
df= DataFrame(data, index=idx, columns=cols)
python如何安装扩展库openpyxl和numpy_Python第三方库之openpyxl(2)相关推荐
- python语音识别的第三方库_python标准库+内置函数+第三方库: 7.音频处理
python标准库+内置函数+第三方库 欲善其事,必先利其器 这其器必是python的标准库+内置函数,话说许多第三方库, 也是对标准库的使用,进行封装,使得使用起来更方便. 这些库以使用场景来分类: ...
- 不属于python第三方库_在 Python 语言中,不属于机器学习领域第三方库的是______。???????????????????????????????????????...
在 Python 语言中,不属于机器学习领域第三方库的是______.??????????????????????????????????????? 答:Arcade 图的遍历方法有两种:深度优先搜索 ...
- 【Linux】动态库与静态库,如何打包库,如何使用第三方库
文章目录 回顾基础 学会打包自己的库并使用 静态库 打包库 第三方库的使用 动态库 打包库 第三方库的使用 动态库加载以及周边问题 回顾基础 这篇文章主要对动静态库进行进一步的学习,关于动静态库的一些 ...
- python 通过pip安装库 pycharm里面使用第三方库
安装所需的模块(python) pip 是 Python 包管理工具,该工具提供了对Python 包的查找.下载.安装.卸载的功能. 首先命令行输入pip3 --version查看是否有pip C:\ ...
- [转载] 20个常用Python库及200个第三方库
参考链接: 使用Python在Linux Terminal中格式化文本 Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它 Scrapy 如果你从事 ...
- 20个常用Python库及200个第三方库
Requests.Kenneth Reitz写的最富盛名的http库.每个Python程序员都应该有它Scrapy 如果你从事爬虫相关的工作,那么这个库也是必不可少的wxPython GUI(图形用户 ...
- Python基础:标准库和常用的第三方库
目录 Python的标准库 Python常用的第三方库 标准库用法参考示例 datetime库: zlib库: sys库: urllib: Python的标准库 名称 作用 datetime 为日期和 ...
- vscode python 第三方库自动补全 第三方库的智能提示
VS Code python设置第三方包的智能感知 因为使用Pyside6框架写Python程序,而QT自己的Qt Creator 在使用方面确实不如VScode轻便,故而使用VScode写Pysid ...
- python3.5安装pip_win10上python3.5.2第三方库安装(运用pip)
1 首先在python官网下载并安装python.我这儿用的是python3.5.2,其自带了pip.如果你选择的版本没有自带pip,那么请查找其他的安装教程. 2 python安装好以后,我在其自带 ...
最新文章
- Nginx(一)------简介与安装
- 企业是否真的需要BI?
- 关于MultipleOutputFormat若干小记
- PostgreSQL学习笔记6之函数和操作符二
- 2020蓝桥杯省赛---java---B---4( 合并检测)
- CompareAndSwap原子操作原理
- Java求最小数用哪个函数_在Java中使用小数进行计算的函数
- 中断挂起是什么意思_深入JVM(三)- 什么是垃圾及垃圾回收算法
- SpringCloudGateway(一) 概览
- Python入门你要懂哪些?这篇文章总算讲清楚了
- 2017-05-24
- vagrant 常用的几个命令
- js下载视频(mp4格式)
- 计算机上网记录怎么清除,电脑浏览器上网记录怎么删除
- Jupyter 查看中间变量值的方法
- MQTT5.0新特性(比对3.1.1)
- mysql 1033_MySQL ERROR 1033 (HY000): Incorrect information in file. 处理一例
- 千纸鹤(小纸片)全套源码
- matlab 残差plot,residualplot分析
- 编译原理——自上而下语法分析
热门文章
- Blazor 0.5.0 升级及新特性介绍
- 基于.net standard 的动态编译实现
- 迁移后的Net Standard版本的类库测试和多平台项目实测
- 计算机网络实验进入实时模式,计算机网络实验1 PacketTrace基本使用.doc
- yum search php7,yum install php7 in centos6
- linux c之memcpy拷贝结构体到结构体、拷贝字符数组到结构体
- Android之JNI DETECTED ERROR IN APPLICATION: illegal class name ‘XXX‘的错误解决方法
- Android之面试题总结加强版(一)
- mybatis和hibernate的对比总结
- sql 之as(Aliases)别名(mysql)