Cbuilder 2010如何通过range快速读取excel中大量数据,谢谢

zhangwenju-z 2014-03-14 03:01:18
...全文
1067 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangwenju-z 2014-03-17
  • 打赏
  • 举报
回复
vb代码 Private Sub ReadData() Dim Dat(,) As Object iCol = zSht.UsedRange.Columns.Count iRow = zSht.UsedRange.Rows.Count Dat = zSht.Range(zDat.GetString(2, i) + ":" + zDat.GetString(iCol, i)).Value AddData(Dat) Dat = zSht.Range(zDat.GetString(1, i + 3) + ":" + zDat.GetString(1, iRow)).Value AddData(Dat) Dat = zSht.Range(zDat.GetString(2, i + 3) + ":" + zDat.GetString(iCol, iRow)).Value AddData(Dat) End Sub Public Function GetString(ByVal i As Integer, ByVal j As Integer) As String Dim k As Integer k = Int((i - 1) / 26) If k < 1 Then GetString = Chr(Asc("A") + i - 1) Else GetString = Chr(Asc("A") + k - 1) + Chr(Asc("A") + i - 26 * k - 1) End If GetString = GetString.Trim + Str(j).Trim End Function c++builder 代码 void clsExcel::GetRange(String Line) { Variant rData; rData=_Sheet.OleFunction("Range", Line).OlePropertyGet("Value"); //_Sheet.OleProcedure() if(rData.IsArray()) ShowMessage(rData.ArrayHighBound()); else ShowMessage("None"); } 不行
ccrun.com 2014-03-14
  • 打赏
  • 举报
回复
你贴段代码look一下。
zhangwenju-z 2014-03-14
  • 打赏
  • 举报
回复
excel的range可返回一个数组,在vs2008中是可以实现的, 只是在cbuilder中返回数据类型有问题,不知如何解决
ccrun.com 2014-03-14
  • 打赏
  • 举报
回复
快速是不可能的。OLE速度一般是比较慢的。
zhangwenju-z 2014-03-14
  • 打赏
  • 举报
回复
沙发,

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧