如何使自己的程序通过剪贴板与Excel交换数据?(100分)

  • 主题发起人 主题发起人 devil_li
  • 开始时间 开始时间
D

devil_li

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使自己的程序通过剪贴板与Excel交换数据?
 
参考
Delphi与Word之间的融合技术
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517

Delphi5 控制 Excel2000 心得
http://www.delphibbs.com/delphibbs/dispq.asp?lid=759711
 
把我的要求将具体一些吧。我需要在excel中Ctrl+C拷贝数据,
然后在自己的表格控件中Ctrl+V将数据粘贴过来。
我需要具体的实现。
 
excel提供了很多格式,最简单的是文本格式
你就用
uses clipbrd;
Clipboard.AsText
得到的数据,就是文本的,列之间用 TAB 间隔开了(ascii码为 9 )
行之间用回车换行间隔开了,很容易还原
 
拷贝往excel也一样这样组织文本,
Clipboard.AsText:=。。。。。。
也可以拷贝往excel
 
单是采用纯文本方式最大的缺点是不能够识别Cell的合并,就是把多个Cell合并成一个Cell
 
比如下面这两种表格,拷贝成文本都是一样的。
┌────┬──────────┬─────┐
│ 1 │ 2     │  3  │   
├────┼─────┬────┼─────┤
│ 4  │     │    │   5 │
└────┴─────┴────┴─────┘      

┌────┬──────────┬─────┐
│ 1 │ 2     │  3  │   
├────┼──────────┼─────┤
│ 4  │          │   5 │
└────┴──────────┴─────┘                  
 
首先在sheet中select,然后usedrange。copy;然后在word中设置好range,最后
range。paste
 
excel与文本文件的格式肯定是不可能结合很好的。
如果非要转换数据,自己用格式指定可能还好些。
 
如果不用文本格式,那么excel也提供了其他格式,稍微复杂一点,但也还是比较简单的有csv格式
但是如果使用excel原装的格式,那么读起来有点困难
我想结合你的程序,你的表格不会那么复杂的吧,如果是四四方方的,那么用文本就可以了
 
我的表格也支持Cell合并、颜色、边框等。
至少我的表格要读出Cell的合并状态。其他的边框、颜色等能读出来当然最好。
csv好像也不能够识别Cell的合并。
excel原装的格式怎么读?或者还有什么其他的方法?(从剪贴板中)
 
Excel中Copy的内容在FrontPage中可以Paste出Html格式。
FrontPage是怎样做到的?如果我的程序也能读出Html格式,就能够自己解析了!
 
那最好不要用剪贴板了,通过ole读excel选择的格子更简单了
 
这样存在的问题是:
1。Excel没有Copy时,也可以Paste。
2。当打开多个Excel,Paste用哪一个?
 
有难度
帮你踢一下。
 
FrontPage可是他们自己作的。要实现不了才怪。

想把自己的数据组织成Excel格式,放到剪贴板,难啊!

 
在msdn library
进 office developer documemnt/office97 doc/excel/microsoft excel97 developer's kit/Dynamic Data Exchange and XlTable Format
里面解释了一些可以利用的格式
 
有很多例子了,excel
 
我也想知道
 
我想知道TOleContainer怎样与Word或Excel交换数据(如格式文本、图象......),我看了一下Delphi自带的例子,好象是通过剪贴板来实现的,但这样数据不是很安全。
谁有好办法?我愿出200分!
 
后退
顶部