各位大侠,我用delphi从excel中获取数据时,遇到了excel单元格中#VALUE!这样的数据,结果程序报错,could not convert variant of type (dispatch) into type (string),请教下有没有好的方法处理?
解决方案 »
- 如何把以下代码翻译成bcb
- 做个进销存系统的大侠进来看看 关于数据库设计的问题
- 求DELPHI指针和线程方面的资料
- 急! 俺用idPOP收邮件时,如果标题是中文的! 就出现乱吗? ,请问这乱码如何解决?
- 请问各位如何画出y=x*x+2*x+1的曲线?谢谢帮忙!
- 帮帮忙呀!哪里可以下载Delphi Preview
- 在异地拷贝一个文件(200M以上)到本地,如何做
- 关于ODBC,sql server 的问题!!!
- 存储数据的,使用三个TMEMO或TRICHEDIT,当有多行数据时都会出现“将截断字符串或二进制数据”的错误提示
- 求助!用Wise Installation 打包问题。
- delphi XE2 与vs2008 vc unicode 通讯乱码。
- 求教BDE连接FireBird的问题!
2、要么就要绕开这种情况,加一个判断
if ExclApp.ActivexSheet[1].Cells[1,1].value = '#VALUE!' then
3、建议用SQL语句直接从Excel获得数据,
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=''d:\123.xls'';Extended Properties=''Excel 8.0''')...Sheet1$
这样SQL会处理掉那些无效值!
另外也可以使用active插件逐格获取excel的内容,不过可惜我手里只有c#的代码
if varType(Excelapp.Cells[i,j])<>varDispatch then
...不过,这个不应该是Delphi做的事,你应该想法办排除掉这个错误
select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=''d:\123.xls'';Extended Properties=''Excel 8.0''')...Sheet1$
这样SQL会处理掉那些无效值!这种方法还是比较好用