lingo没有办法导入excel表格的原因

lingo没有办法导入excel表格的原因,第1张

Lingo不像matlab处理矩阵的,所以那些小数据还是直接复制上去好。如果要导入就:

把数据放到 excel 中然后用@ole读出来,

用法

x=@OLE('D:/cost.xls',f)

基中前面的x是你想要得到值的表达式,后面'D:/cost.xls'是你要读的数据所在的文件,f比较难理解,它是你在要读的文件中做的标记,在你要读的文件中主要是EXECEL中选中要读的数据选中后释放鼠标按钮,选择“插入|名称|定义”,输入f,输入的f一定要和程序中'D:/cost.xls'后面的f一样,不然它就认不出来了。

比如导数一个矩阵,把矩阵赋值给data1,则先把excel中的数据选中,选择“插入|名称|定义”,然后输入定义名称data1,然后把excel保存为shuju.xls,保存在d盘。

在lingo界面输入

data1=@ole('d:\shuju.xls‘,data1)

就可以了

3.@ole 函数

@OLE 是从EXCEL 中引入或输出数据的接口函数,它是基于传输的OLE技术。OLE

传输直接在内存中传输数据,并不借助于中间文件。当使用@OLE 时,LINGO 先装载

EXCEL,再通知EXCEL 装载指定的电子数据表,最后从电子数据表中获得Ranges。为

了使用OLE 函数,必须有EXCEL5 及其以上版本。OLE 函数可在数据部分和初始部分

引入数据。

@OLE 可以同时读集成员和集属性,集成员最好用文本格式,集属性最好用数值

格式。原始集每个集成员需要一个单元(cell),而对于n 元的派生集每个集成员需

要n 个单元,这里第一行的n 个单元对应派生集的第一个集成员,第二行的n 个单

元对应派生集的第二个集成员,依此类推。

@OLE 只能读一维或二维的Ranges(在单个的EXCEL工作表(sheet)中),但不能

读间断的或三维的Ranges。Ranges 是自左而右、自上而下来读。

例 4.16

sets:

PRODUCT!产品

MACHINE!机器

WEEK!周

ALLOWED(PRODUCT,MACHINE,WEEK):x,y!允许组合及属性

endsets

data:

rate=0.01

PRODUCT,MACHINE,WEEK,ALLOWED,x,y=@OLE('D:\IMPORT.XLS')

@OLE('D:\IMPORT.XLS')=rate

enddata

代替在代码文本的数据部分显式输入形式,我们把相关数据全部放在如下电子

数据表中来输入。下面是D:\IMPORT.XLS 的图表。

除了输入数据之外,我们也必须定义Ranges 名:PRODUCT,MACHINE,WEEK,

ALLOWED,x,y. 明确的,我们需要定义如下的Ranges 名:

Name Range

PRODUCT B3:B4

MACHINE C3:C4

WEEK D3:D5

ALLOWED B8:D10

X F8:F10

Y G8:G10

rate C13

为了在EXCEL 中定义Ranges 名:

① 按鼠标左键拖曳选择Range,

② 释放鼠标按钮,

③ 选择“插入|名称|定义”,

④ 输入希望的名字,

⑤ 点击“确定”按钮。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11554064.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存