我在OLEContainer中插入一个word对象,word文档中有一些表格。我现在想把文档中的表格中的某一个单元格信息提取出来,该怎么写语句?(原来我想着应该是类似olecontainer1.oleobject.tables[1],行不通^_^)。还有一个问题是我在一个按钮中写如下语句:olecontainer1.loadfromfile('g:\test.doc');程序运行后提示‘Invalid stream format’,如果我想从数据库中读取一个stream类型的数据,用loadfromstream也会出现类似错误,这是怎么回事?谢谢

解决方案 »

  1.   

    用olecontainer操作word似乎不可能,我一般用createoleobject来操作这段代码对你也许有用with DataMdl.RijiADOQry do
      begin
        Append;Edit;
        try
          MemoryStream:=TMemoryStream.Create;
          try
            if WordRBtn.Checked then
            begin
              if DataMdl.HasWord2000 then
              try
                OleContainer1.SaveToStream(MemoryStream);
                FieldByName('日记格式').AsString:='.doc';
              except
                MessageBox(0,'请安装Word2000,才能保存Word2000格式的日记!现在只保存Rtf格式的空日记!','对不起',MB_OK+MB_IconError);
                RichEdit1.Lines.Clear;
                RichEdit1.Lines.SaveToStream(MemoryStream);
                FieldByName('日记格式').AsString:='.rtf';
              end
            end
            else begin
              RichEdit1.Lines.SaveToStream(MemoryStream);
              FieldByName('日记格式').AsString:='.rtf';
            end;
            try
            MemoryStream.Position:=0;
            TBlobField(FieldByName('内容')).LoadFromStream(MemoryStream);
            except
            end;
            post;      except
            DataMdl.RijiADOQry.Cancel;
            MessageBox(handle,'请写好日记在添加!','错误',MB_OK+MB_ICONERROR);
          end;
        finally
          MemoryStream.Free;
        end;
     end;
    except
      DataMdl.RijiADOQry.Cancel;
      MessageBox(handle,'未可预料的错误,添加失败!','错误',MB_OK+MB_ICONERROR);
    end;
      

  2.   

    to:catfather46
    首先非常感谢您的热心帮助,这个和实现我的功能似乎还有差距。其实我是想实现这样一个功能,用OLEcontainer提供给用户一个编辑的环境(用户在里面建立表格,可能还会插入图片),然后我需要提取其中的各个单元格的内容存到数据库里去。
    如果olecontainer不能实现的话,这个功能应该用什么方法去实现?