我将使用Cplex解决优化问题。
在我的file.dat中,我使用SheetConnection my_sheet("ExcelFile.xls")
将Excel文件链接到我的cplex程序,之后我使用SheetRead()
从Excel文件中读取数据。
但在运行配置后,我遇到以下错误:
"sheet data not supported on this platform"
"Processing failed"
我发现Linux上不支持在ILOG CPLEX优化工作室上阅读excel电子表格
有什么想法吗?
答案 0 :(得分:1)
有Java类,例如Apache POI类,可以读写Excel文件。您可以使用这些类来实现外部/自定义数据源,并通过IloOplCallJava调用它。然后,您可以直接从“执行”块中的.mod文件中调用,也可以通过“prepare”和“invoke”从.dat文件中使用它。我过去做过前者,效果很好。
我还使用Python将Excel文件转换为OPL在OPL不支持Excel的平台上更容易使用的东西。
答案 1 :(得分:0)
我遇到了同样的问题。 我的解决方案是将我的数据转换为csv并使用IloOplInputFile来读取它。 例如:
假设您有以下export.cvs文件:
Nicolas;2;
Alexander;3;
您可以使用以下代码将其转换为数据。
tuple t
{
string firstname;
int number;
}
{t} s={};
execute
{
var f=new IloOplInputFile("export.csv");
while (!f.eof){
var str=f.readline();
var ar=str.split(";");
if (ar.length==3) s.add(ar[0],Opl.intValue(ar[1]));
}
f.close();
}
execute
{
writeln(s);
}
将读取csv文件并计算元组集合:
{<"尼古拉斯" 2 - ; <"亚历山大" 3 GT;}