首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

线程中读取Excel数据?怎么实现?

2012-03-12 
线程中读取Excel数据?如何实现?!!线程中读取Excel数据?如何实现?!!我在线程中创建Excel对象成功.能调用Exc

线程中读取Excel数据?如何实现?!!
线程中读取Excel数据?如何实现?!!
我在线程中创建Excel对象成功.能调用Excel,可看到Excel打开文件.
但无法读取数据.程序到第6行报错.不在线程中运行,以下代码正确.
---------------------------
Debugger   Exception   Notification
---------------------------
Project   *.exe   raised   exception   class   EOleSysError   with   message   '应用程序调用一个已为另一线程整理的界面。 '.   Process   stopped.   Use   Step   or   Run   to   continue.
---------------------------
确定(O)       帮助(H)      
---------------------------

        Excel:=UnAssigned;
        Excel:=CreateOleObject( 'Excel.Application ');
        Excel.Visible:=true;
        Excel.DisplayAlerts:=false;
        book:=Excel.WorkBooks.Open(Ffilename);
        iRowCnt:=sheet.UsedRange.cells.Count;
        iColCnt:=sheet.UsedRange.Columns.Count;
        for     i:=1     to     iRowCnt   do
        begin
            for     i:=1     to     iColCnt   do
            begin
                .................
            end;
        end;


[解决办法]
两个线程同时读一个excel文件本来就不行
[解决办法]
楼上的。我只在一个线程打开Excel,没有其他Excel对象运行!
[解决办法]
也可以使用ado访问excel,只要不存在并发访问,访问excel与线程无关
[解决办法]
定义线程函数
function MyThreadFunc(pi :Pointer): DWORD; stdcall;
begin
.......执行的过程。。。。。
end;
建立线程用APID
var
thrd_Down:Thandle;
thrd_Down := CreateThread(nil,0, @MyThreadFunc, Ptr(i), 0, ThreadID);
closehandle(thrd_Down);
CreateThread()//这个就看一下帮助里面的参数如何设置了


热点排行