ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 使用xlwings读取数据和写入数据

2021-07-17 22:33:16  阅读:705  来源: 互联网

标签:单元格 sht 读取数据 python xlwings A1 range conda


 

xlwings 库使用说明

--xlwings是Python操作Excel的强大扩展库

1 xlwings简介

关于xlwings,xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。

xlwings还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。

最重要的是xlwings可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。

1.1 官方网站:https://www.xlwings.org/

 

1.2 官方文档:https://docs.xlwings.org/en/stable/

 

1.3 中文文档:https://www.kancloud.cn/gnefnuy/xlwings-docs/1127450

 

1.4 版本更新说明:https://docs.xlwings.org/en/stable/whatsnew.html#

 

2 xlwings实操基本操作

2.1 建立excel表连接

import xlwings as xw

wb = xw.Book("e:\example.xlsx") 

wb = xw.Book()  # 这将创建一个新的工作簿

wb = xw.Book('FileName.xlsx')  # 连接到当前工作目录中的现有文件

wb = xw.Book(r'C:\path\to\file.xlsx')  # 在Windows上:使用原始字符串来转义反斜杠

2.2 实例化工作表对象

sht = wb.sheets["sheet1"]

2.3 返回工作表绝对路径

wb.fullname

2.4 返回工作簿的名字

sht.name

2.5 在单元格中写入数据

sht.range('A1').value = "xlwings"

2.6 读取单元格内容

sht.range('A1').value

2.7 清除单元格内容和格式

sht.range('A1').clear()

2.8 获取单元格的列标

sht.range('A1').column

2.9 获取单元格的行标

sht.range('A1').row

2.10 获取单元格的行高

sht.range('A1').row_height

2.11 获取单元格的列宽

sht.range('A1').column_width

2.12 列宽自适应

sht.range('A1').columns.autofit()

2.13 行高自适应

sht.range('A1').rows.autofit()

2.14 给单元格上背景色,传入RGB值

sht.range('A1').color = (34,139,34)

2.15 获取单元格颜色,RGB值

sht.range('A1').color

2.16 清除单元格颜色

sht.range('A1').color = None

2.17 输入公式,相应单元格会出现计算结果

sht.range('A1').formula='=SUM(B6:B7)'

2.18 获取单元格公式

sht.range('A1').formula_array

2.19 在单元格中写入批量数据,只需要指定其实单元格位置即可

sht.range('A2').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

2.20 读取表中批量数据,使用expand()方法

sht.range('A2').expand().value

2.21 与正在打开的活动工作表互动

  • 其实你也可以不指定工作表的地址,直接与电脑里的活动表格进行交互

# 写入

xw.Range("E1").value = "xlwings"# 读取

xw.Range("E1").value

2.22 表格的清除

#清除表格的内容和格式

sheet.clear()

#清除表格的内容

sheet.clear_contents()

#删除表格

sheet.delete()

3 xlwings与numpy、pandas、matplotlib互动

3.1 支持写入numpy array数据类型

import numpy as np

np_data = np.array((1,2,3))

sht.range('F1').value = np_data

3.2 支持将pandas DataFrame数据类型写入excel

import pandas as pd

df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])

sht.range('A5').value = df

3.3 将数据读取,输出类型为DataFrame

sht.range('A5').options(pd.DataFrame,expand='table').value

3.4 将matplotlib图表写入到excel表格里

import matplotlib.pyplot as plt

fig = plt.figure()

plt.plot([1, 2, 3, 4, 5])

sht.pictures.add(fig, name='MyPlot', update=True)

 

4 Python API

https://www.kancloud.cn/gnefnuy/xlwings-docs/1127474

附1:类和对象的属性和方法查看方式

  1. dir(类名或者对象名)
  2. help(类名或者对象名)

第三方库的源码查看方法

1.库名.__file__

 

附2:安装(Anaconda里已经嵌入无需手动安装,直接使用Spyder编程即可)

安装xlwings的最简单方法是通过pip:

pip install xlwings

或者 conda:

conda install xlwings

请注意,官方的conda包版本可能会稍许落后。 但是,您可以使用conda-forge频道(参见:https://anaconda.org/conda-forge/xlwings) 获取最新的(但可能仍然是pip发布后一天左右):

conda install -c conda-forge xlwings

注意
当您使用Mac Excel 2016并使用conda安装xlwings(或使用Anaconda附带的版本)时,您需要运行$ xlwings runpython install一次以启用来自VBA的RunPython调用。 或者,您只需使用pip安装xlwings即可。

依赖

  • Windows: pywin32, comtypes

在Windows上,如果使用conda或pip安装xlwings,则会自动处理依赖项。

  • Mac: psutil, appscript

在Mac上,如果使用conda或pip安装xlwings,则会自动处理依赖项。 但是,使用pip,Xcode命令行工具需要可用。 需要Mac OS X 10.4(Tiger)或更高版本。 Mac的推荐Python发行版是Anaconda

可选的依赖项

  • NumPy
  • Pandas
  • Matplotlib
  • Pillow/PIL

这些包不是必需的,但强烈推荐,因为它们与xlwings非常相配。

加载项

有关如何安装xlwings加载项的信息,请参阅加载项

Python版本支持

xlwings在Python 2.7和3.3+上进行了测试

 

标签:单元格,sht,读取数据,python,xlwings,A1,range,conda
来源: https://www.cnblogs.com/litao201403/p/15025321.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有