model:
sets:
bbb/1..4/:c,x,t;
endsetsdata:
c=@ole('D:\桌面\0722.xlsx','nah'); !读excel中内容
@ole('D:\桌面\0722.xlsx','nahh')=t; !写出lingo中内容
enddata
公式——定义名称 (引用的时候都选中,自己起个名称(如nah))
没找到合适的例题,有了合适的例题再来操作试一试。
今天07-28,看了下书,发现ssk 的书上有lingo与excel讲解 p520这块
model:
sets:
a/1..6/:e;
b/1..8/:d;
links(a,b):c,x;
endsetsmin=@sum(links:c*x);
@for(b(j):@sum(a(i):x(i,j))=d(j));
@for(a(i):@sum(b(j):x(i,j))<=e(i));data:
!e=60 55 51 43 41 52;
e=@ole('D:\桌面\1855.xlsx','han');
d=@ole('D:\桌面\1855.xlsx','hann');
!d=35 37 22 32 41 32 43 38;
c=@ole('D:\桌面\1855.xlsx','nahh');
@ole('D:\桌面\1855.xlsx','answer')=x;
enddata
end
验证了下与手动输入的结果一致
注意哦,运行lingo 的时候得打开着excel
sets:
linea/1..20/;
lineb/1..13/;
link(linea,lineb):T,x;
endsets@for(link(i,j):@bin(x(i,j)));
@for(linea(i):@sum(link(i,j):x(i,j))<=1);
@for(lineb(j):@sum(link(i,j):x(i,j))>=1);
min=@max(link(i,j):T(i,j)*x(i,j));data:
T=@ole(); !excel开着就行了 区域名字得和变量一样
@ole()=x;
enddata
就俩角标 以上代码为准
注意@ole 定义的区域范围要定好 比如这里(20*13)