Axapta提供了一些类用于操作Excel,这些类实际上是对Excel.Application这个COM对象的封装,由于Axapta不支持Unicode,对于含有汉字的Excel文件,可就惨了下列代码,如果Excel中是汉字的话,只能输出一半.
void GetDataFromExcel()


{
SysExcelApplication app;
SysExcelWorkSheets wss;
SysExcelWorkSheet ws;
SysExcelWorkbooks wbs;
SysExcelWorkBook wb;
Container c;
str strValue;
int rowLine;
int colLine;
;

app = SysExcelApplication::construct();
wbs = app.workbooks();
wbs.open(strFilePath,0,true);
wb = wbs.item(1);
wss = wb.worksheets();
ws = wss.itemFromName("ItemData");

print ws.cells().item(1,1).value().bStr();

app.quit();
pause;
}
不想花力气在COM和Excel文件之间做转换,想到Excel其实就是数据库,于是通过ODBCConnection来读取数据也不失为一个好办法.
static void readDataFromExcel(Args _args)


{
LoginProperty lp;
ODBCConnection od;
Statement st;
ResultSet rs;
;
lp = new LoginProperty();
lp.setDSN("ItemData");

od = new ODBCConnection(lp);
st = od.createStatement();
rs = st.executeQuery("Select * from [ItemData$]");
while(rs.next())

{
print rs.getString(1);
}
pause;

}
这样就可以全读出来了.