数据的导入导出是Dynamo中众多强大的功能之一,而Excel文件作为数据存储最常用的格式之一,在日常操作中接触到地最频繁,下面介绍几种在Dynamo中操作Excel的方法。
(一)Dynamo自带的操作Excel的节点
Dynamo中自带的官方操作结点有如下两个,读:ReadFromFile,写:WriteToFile。通过查看其源代码可以知道原理是基于.NET平台而实现的。
(二)Dynao第三方节点包
bumblebee节点包提供了丰富的节点可以与Excel进行很多交互,操作简单。需要的在Dynamo官方的节点包官网自行下载。
(三)Python通过.NET平台操作Excel
Python可以用来操作Excel的官方库有xlrd和xlwd两个,不过遗憾的是Dynamo中采用的是Ironpython,是基于.Net实现的python,并不支持这两个官方库。
因为Dynamo中的ironpython是基于.NET实现的,而.NET平台已经提供了操作excel的方法,那么ironpython也可以通过.NET平台实现Excel的操作,操作代码如下:
import clr
clr.AddReference('Microsoft.Office.Interop.Excel')
from Microsoft.Office.Interop import Excel
from System.Runtime.InteropServices import Marshal
path=IN[0] #path为文件路径
ex=Excel.ApplicationClass()
ex.Visible=False
ex.DisplayAlerts=False
workbook=ex.Workbooks.Open(path)
sheet1=workbook.Worksheets[1]
sheet1.Delete() #删除表1
workbook.Save()
(四)Python通过.NET平台下的第三方库操作Excel
上述两种方法都存在的同一种问题就是当前运行环境必须已经安装好OFFICE或者WPS(实测表明安装WPS比OFFICE更加稳定)。
那么如何在没有安装相关软件的环境下操作Excel文件呢?熟悉.NET的同学会知道"NPOI"这个库,这个库的作用就是在没有安装office的电脑上,通过代码操作Excel或者Word文件;
优点:
不需要安装相关软件;
读取速度快,方式灵活;
缺点:
对不熟悉该库的人来说,上手难度稍大;
使用步骤:
首先下载NPOI.dll这个包(通过VS STUDIO的“NUGET”的包管理器下载),然后在Python脚本中写下如下引用方法:
import clr
import sys
sys.path.append(r'C:Users34249sourcereposWpfApp3packagesNPOI.2.4.1libnetstandard2.0')
clr.AddReference('NPOI')
#路径为NPOI.dll所在文件夹的位置
import NPOI
#下面开始操作Excel