以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  当从EXECL中一次性地复制多列数据到当前表中的时候  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7466)

--  作者:yankunhao
--  发布时间:2010/6/25 20:25:00
--  当从EXECL中一次性地复制多列数据到当前表中的时候

当用户从EXECL中一次性地复制多列数据到当前表中的时候,如果这个表中没隐藏列的时候,就能顺利地得到所想的数据,但如果有隐藏列的时候,且隐藏的列位于显示列中间的时候,当粘贴命令执行时,被隐藏的列位置的粘贴数据就不会被粘贴而只粘贴显示列的数据,这样就会失去被隐藏了的那些列的数据,请问大家有没方法,当粘贴时可以正常地将相关列的数据按次序粘到当前表的显示列中呢?


--  作者:狐狸爸爸
--  发布时间:2010/6/26 8:22:00
--  
自己做个粘贴按钮就行,用split拆分,逐个单元格写入表中。
--  作者:yankunhao
--  发布时间:2010/6/26 20:45:00
--  
好像比较难,能否给个例子呢?
--  作者:狐狸爸爸
--  发布时间:2010/6/27 9:21:00
--  

获得剪贴板中的字符的方法:

 

Dim s As String = System.Windows.Forms.ClipBoard.GetText()

 

接下来用Split拆分成行,每一行再用Split拆分成列,再逐个写入单元格。

 

你自己先尝试一下,这些都是很好的锻炼机会,实在搞不定,我再帮你写个。


--  作者:yankunhao
--  发布时间:2010/6/27 13:39:00
--  

还是搞不好啊!


--  作者:mr725
--  发布时间:2010/6/27 20:47:00
--  

要通过按钮粘贴,这样就可以了:  如foxtable的某表第五列是隐藏的........

先在excel选择要复制的内容复制一下, 再选择fox中该表的起始要粘贴的单元格,点击按钮(代码如下):

Tables("outtable").Cols("第五列").Visible = true
Application.DoEvents
tables("outtable").focus
Syscmd.Edit.Paste()
Application.DoEvents
Tables("outtable").Cols("第五列").Visible = false

  


图片点击可在新窗口打开查看此主题相关图片如下:zt-.gif
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-6-27 21:17:08编辑过]

--  作者:yankunhao
--  发布时间:2010/6/27 21:38:00
--  
我的意思是想在粘贴时能跳过已隐藏的列,就是隐藏了的列是不能被粘贴到数据的,仅仅粘贴到这个用户能看到的列,且在粘贴时EXCEL是三列数那么foxtable表中也是对应的三列数。
--  作者:狐狸爸爸
--  发布时间:2010/6/27 22:03:00
--  
我明天抽空帮你写一段吧。
--  作者:mr725
--  发布时间:2010/6/27 22:17:00
--  
以下是引用yankunhao在2010-6-27 21:38:00的发言:
我的意思是想在粘贴时能跳过已隐藏的列,就是隐藏了的列是不能被粘贴到数据的,仅仅粘贴到这个用户能看到的列,且在粘贴时EXCEL是三列数那么foxtable表中也是对应的三列数。

或许,你可以把隐藏的列移到最后一列的位置.........

 


[此贴子已经被作者于2010-6-27 22:20:04编辑过]

--  作者:yankunhao
--  发布时间:2010/6/27 22:42:00
--  
以下是引用mr725在2010-6-27 22:17:00的发言:

或许,你可以把隐藏的列移到最后一列的位置.........

 


[此贴子已经被作者于2010-6-27 22:20:04编辑过]

我也试过想将隐藏了的列统一移到显示列的后面,但这一样一来,当有别的用户进来的时候,而他有权看到一些别人看不到的列,那么这个用户的列顺序就变了。所以希望有一个好一点的方法实现这个想法,我想大家在做数据管理的时候是需要能快速地将EXECL表中的一些数据粘贴到系统中的。