我从excel表导入AX。所以过程:从excel中读取记录并将它们添加到临时表并填充网格。这是正在发生的过程。当我使用较少的记录ex:1400记录时,它导入网格没有问题。当我导入66000条记录时,它会抛出上述错误。有人可以建议我应该做什么,这样我一次可以导入60000条记录?我尝试重新启动AX,创建新的excel表格,这是建议在线.....没有任何作用。
答案 0 :(得分:2)
是的,当开发任何导入Excel时有这个问题,当有很多行时。如果行数很少,那就完美了。
对于这种情况,请始终更改CSV导入的Excel导入。导入csv文件的代码永远不会失败并且运行良好。
这里我举一个例子来导入一个包含3行的csv文件。
<强> 代码: 强>
static void Stack(Args _args)
{
AsciiIo asciiIo;
container con;
FileIoPermission perm;
boolean _CortarProceso;
IO_Status aa;
str filename;
str _row1, _row2, _row3;
Dialog dialog;
DialogField dialogFileName;
;
dialog = new Dialog("Select CSV File");
dialogFileName = dialog.addField(ExtendedTypeStr("FilenameOpen"),"Path File:");
if (dialog.run())
{
filename = dialogFileName.value();
}
if (!filename)
{
return;
}
perm = new FileIoPermission(filename, "R");
perm.assert();
asciiIo = new AsciiIo(filename, "R");
asciiIo.inFieldDelimiter(";");
if (asciiIo != null)
{
con = asciiIo.read();
while((asciiIo.status() == IO_Status::Ok) && (!_CortarProceso)){
_Row1 = conPeek(con, 1); //Row1
_Row2 = conPeek(con, 2); //Row2
_Row3 = conPeek(con, 3); //Row3
if(_row1 != ""){
//Your Code...
//Your Code...
//Your Code...
//Your Code...
//Your Code...
}else{
_CortarProceso = true;
}
con = asciiIo.read();
}
}
info("Process End");
}