在LINGO中使用电子表格数据.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在LINGO中使用电子表格的数据 在实际应用中,可能有大量数据是存放在电子表格中的(最常用的大概就是Excel软件了, 所以我们这里只讨论 Excel 电子表格的情况)。通过Excel文件与 LINGO 系统传递数据的函 数的一般用法是通过@OLE 函数,与@FILE 函数一样,该函数只能在 LINGO 模型的集合段、 数据段和初始段使用。无论用于输入或输出数据,这个函数的使用格式都是: @OLE(spreadsheet_file [, rang_name_list] 其中 spreadsheet_file是电子表格文件名称,应当包括扩展名(如*.xls等),还可以包含完整的路 径名,只要字符书不超过 64均可; rang_name_list是指文件中包含数据的单元范围(单元范 围的格式与Excel中工作表的单元范围的格式一样)。 具体来说,当从Excel中向LINGO 模型中输入数据时,在集合段可以直接采用“@OLE (…)”的形式,但在数据段和初始段应当采用“属性(或变量)=@OLE(…)”的赋值形 式;当从 LINGO 向 Excel 中输出数据时,应当采用“@OLE(…)=属性(或变量)”的赋 值形式(自然,输出语句只能出现在数据段中)。请看下面的例子。 例 4.4 继续考虑上面例 4.2的例子中(模型exam0402.lg4),但通过@OLE 语句输入输 出数据。 首先,我们用 Excel 建立一个名为 mydata.xls 的 Excel 数据文件,参见图 4-8。为了能 够通过@OLE 函数与LINGO 传递数据,我们需要对这个文件中的数据进行命名。具体做法 是:我们用鼠标选中这个表格的 B4:B7单元,然后选择Excel的菜单命令“插入|名称|定义”, 这时将会弹出一个对话框,请您输入名称,例如可以将它命名为 cities(这正是图 4-8 所显示的情形,即 B4:B7 所在的 4 个单元被名为 cities)。同理,我们将 C4:C7 单元命名为 SOLUTION。一般说来,这些单元取什么名字都无所谓,但最好还是取有一定提示作用的名 字;另外,这里取什么名字,LINGO 中调用时就必须用什么名字,只要二者一致就可以了。 ? ? ? ? ? ? ? 图 4-8 Excel文件存放的数据 下面,我们把例4.2中的程序修改为(存入文件 exam0404.lg4): MODEL: SETS: MYSET / @OLE(mydata.xls,CITIES) / : COST,NEED,SUPPLY,ORDERED; ENDSETS MIN = @SUM( MYSET( I): ORDERED( I) * COST( I)); @FOR( MYSET( I): [CON1] ORDERED( I) NEED( I); [CON2] ORDERED( I) SUPPLY( I)); DATA: COST,NEED,SUPPLY = @OLE(mydata.xls); @OLE(mydata.xls,SOLUTION)=ORDERED; ENDDATA END 这个程序中有三个@OLE 函数调用,其作用分别说明如下: ● @OLE(mydata.xls,CITIES):从文件mydata.xls的 cities 所指示的单元中 取出数据,作为集合MYSET 的元素。 ● COST,NEED,SUPPLY = @OLE(mydata.xls):这个@OLE 函数调用中没有指明从 mydata.xls的哪些单元给COST,NEED,SUPPLY赋值,这时表示应该采用默认方式(与接收变 量的名称相同),即从mydata.xls 的COST指定的单元给 COST赋值(NEED,SUPPLY 类似)。 ● @OLE(mydata.xls,SOLUTION)=ORDERED:将 ORDERED的值输出赋给mydata.xls 文件中由SOLUTION指定的单元格。 现在运行这个程序,报告窗口将首先显示以下总结报告(Export Summary Report): Export Summary Repor Workbook: mydata.xls Ranges Specified: 1 SOLUTION Ranges Found: 1 Ranges Size Mismatches: 0 Values Transferred 4 这些信息的意思依次是:采用 OLE方式传输数据;Excel文件为mydata.xls;指定的接 收单元范??为 SOLUTION:在 mydata.xls 正好找到一个名为 SOLUTION 的域名;不匹配的单

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档