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

MSFLEXGRID模拟EXCEL时的一个小疑点,希望有这方面经验的朋友帮个忙,帮顶的也有分!

2012-01-06 
MSFLEXGRID模拟EXCEL时的一个小问题,希望有这方面经验的朋友帮个忙,帮顶的也有分!!!!!!!!!!!!!!!!最近写了

MSFLEXGRID模拟EXCEL时的一个小问题,希望有这方面经验的朋友帮个忙,帮顶的也有分!!!!!!!!!!!!!!!!
最近写了一个小工程,是将EXCEL的内容用SQL来存储的,使用的是MSFLEXGRID控件,绝大部分的功能都已经完成,只剩下最后一个无法解决,希望各位做过这方面研究的朋友帮忙:

问题如下:
在GRID和EXCEL文件相互粘贴的过程中,用户需要能将EXCEL中的内容连同颜色一起粘贴到GRID中,但是我不知道EXCEL中的内容在被复制到剪贴板中的时候那个字体颜色信息是存放在哪里的,因此无法实现。
举例说明:
EXCEL中连续单元格:A|B|C|D|
                                      E|F|G|K|
其中B和K的字体是红色的,要求在粘贴到GRID中的时候也显示为红色字体。
不知道这个字体的颜色在剪贴板中是放在什么地方的。大家帮我出出主意吧,谢谢了。。

[解决办法]
我用的是MSHFlexGrid,可以直接綁定數據源的,好用。印象中MSFlexGrid好像不能設置部分單元格的字體.
[解决办法]
大体明白你的意思,就是说剪贴板内容实际上是不带格式的或者无法获取里面的格式咯。
不过我想excel本身是做得到的,也就是它的复制可能是基于对象的复制。

我也遇到类似的问题,从网页上复制内容的时候保存到word是带格式的。但是保存到wps2005就没有格式了。
[解决办法]
楼主,希望下面的试验对你有帮助:
1)清空剪贴板(学VB的有个好处,重新打开VB IDE就行了),可用clipboard.clear
2)选一个Excel 2000单元格,设置字体为红色,单元格背景黄色(或其它),输入 "clipboard "或其它文字.
3)VB中用 Debug.Print Clipboard.GetText(vbCFRTF)会得到如下的内容:

{\rtf1\ansi \ansicpg936
{\fonttbl{\f0\fnil \fcharset134 宋体;}{\f1\fnil \fcharset134 宋体;}{\f2\fnil \fcharset134 宋体;}{\f3\fnil \fcharset134 宋体;}{\f4\fnil \fcharset134 宋体;}{\f5\fnil \fcharset134 宋体;}{\f6\fnil \fcharset0 Times New Roman;}{\f7\fnil \fcharset0 Times New Roman;}{\f8\fnil \fcharset134 宋体;}{\f9\fnil \fcharset134 宋体;}{\f10\fnil \fcharset134 宋体;}{\f11\fnil \fcharset134 宋体;}}
{\info{\id220}}\plain {\colortbl\red0\green0\blue0;\red255\green255\blue255;\red255\green0\blue0;\red0\green255\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red0\green255\blue255;\red0\green0\blue0;\red255\green255\blue255;\red255\green0\blue0;\red0\green255\blue0;\red0\green0\blue255;\red255\green255\blue0;\red255\green0\blue255;\red0\green255\blue255;\red128\green0\blue0;\red0\green128\blue0;\red0\green0\blue128;\red128\green128\blue0;\red128\green0\blue128;\red0\green128\blue128;\red192\green192\blue192;\red128\green128\blue128;\red153\green153\blue255;\red153\green51\blue102;\red255\green255\blue204;\red204\green255\blue255;\red102\green0\blue102;\red255\green128\blue128;\red0\green102\blue204;\red204\green204\blue255;\red0\green0\blue128;\red255\green0\blue255;\red255\green255\blue0;\red0\green255\blue255;\red128\green0\blue128;\red128\green0\blue0;\red0\green128\blue128;\red0\green0\blue255;\red0\green204\blue255;\red204\green255\blue255;\red204\green255\blue204;\red255\gre
en255\blue153;\red153\green204\blue255;\red255\green153\blue204;\red204\green153\blue255;\red255\green204\blue153;\red51\green102\blue255;\red51\green204\blue204;\red153\green204\blue0;\red255\green204\blue0;\red255\green153\blue0;\red255\green102\blue0;\red102\green102\blue153;\red150\green150\blue150;\red0\green51\blue102;\red51\green153\blue102;\red0\green51\blue0;\red51\green51\blue0;\red153\green51\blue0;\red153\green51\blue102;\red51\green51\blue153;\red51\green51\blue51;;\red255\green255\blue255;\red0\green0\blue0;\red212\green208\blue200;\red0\green0\blue0;\red255\green255\blue255;\red128\green128\blue128;\red10\green36\blue106;\red0\green0\blue0;\red212\green208\blue200;\red43\green47\blue55;\red255\green255\blue255;\red0\green0\blue0;\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue0;\red255\green255\blue225;\red0\green0\blue0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\red192\green192\blue192;\red150\green150\bl
ue150;\red128\green128\blue128;\red102\green102\blue102;\red51\green51\blue51;\red0\green0\blue255;\red0\green128\blue0;\red153\green0\blue204;\red128\green0\blue0;\red0\green204\blue51;\red255\green102\blue0;\red204\green0\blue153;\red51\green102\blue153;\red128\green0\blue0;\red0\green128\blue0;\red0\green0\blue128;\red128\green128\blue0;\red128\green0\blue128;\red0\green128\blue128;\red0\green0\blue208;}


\f7\fs24 \cf10 clipboard}

楼主所要的颜色信息应该就在上面吧。换几种颜色试试,应该可以找出规律。

[解决办法]
帮顶
[解决办法]
我猜测上面的数据由字体表与颜色表组成,最后一行\f7\fs24 \cf10 clipboard是文字与格式,f7是表示字体f7,即f7\fnil \fcharset0 Times New Roman,而fs24 \cf10是颜色表中的索引。因没有仔细分析,可能不正确。
[解决办法]
楼上的思路正确,顶楼上一把


顺便问问楼主,最近挖坑了没有



[解决办法]
d
[解决办法]
帮顶
[解决办法]
帮顶
[解决办法]
WallesCai 也在起点写书吗,什么ID,哪些书

这类带格式文本,有点像以前RTF采用的格式,QQ消息也是采用类似格式.
[解决办法]
微软真能瞎掰,搞成XML的多好,这种标记符号,解码比较麻烦。呵呵,楼主好运。(当然,RTF出的时候XML还未成形。保重)
[解决办法]
我来学习的
[解决办法]
楼主挖得深一点,最好把微软的“心脏”给挖出来,呵呵
[解决办法]
要用到Clipboard? 应该用另外的方法实现。Cell(B,1),Cell(B,2)...Cell(K,1),Cell(K,2)...是红色,很有规律呀。
[解决办法]
先顶了再说

[解决办法]
我要想法,
你HOOK CTRL+C,然后把excel选中区域的格式、内容全按自己的想法(自己的格式)放到clipboard里,在MSFLEXGRID中粘贴时,就由你自己做主了!
不过excel中复制有很多种方法,如右键菜单,编辑菜单,要实现起来也不是很容易啊!
[解决办法]
帮顶~了
[解决办法]
帮顶!!
顺便学习一下!!
呵呵
[解决办法]
顶了
[解决办法]
只能幫頂了
[解决办法]
顶+收藏了

热点排行