Foxtable(狐表)用户栏目专家坐堂 → 当从EXECL中一次性地复制多列数据到当前表中的时候


  共有19961人关注过本帖树形打印复制链接

主题:当从EXECL中一次性地复制多列数据到当前表中的时候

帅哥哟,离线,有人找我吗?
mr725
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/27 22:17:00 [显示全部帖子]

以下是引用yankunhao在2010-6-27 21:38:00的发言:
我的意思是想在粘贴时能跳过已隐藏的列,就是隐藏了的列是不能被粘贴到数据的,仅仅粘贴到这个用户能看到的列,且在粘贴时EXCEL是三列数那么foxtable表中也是对应的三列数。

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

 


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

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/27 22:44:00 [显示全部帖子]

以下是引用hnaysx在2010-6-27 22:23:00的发言:

最好foxtable的粘贴里有一项排除隐藏列,集成到系统里最好

类似OFFICE的选择性粘贴

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

这样最好了,有个选择的地方~  那就更强了····


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/27 22:56:00 [显示全部帖子]

但是还有个问题: 就是当excel本身也有隐藏列时,剪贴板上也就包含了excel其中的隐藏列数据了(假使操作人也不会使用excel的只复制显示列),那么即使foxtable有个这样的选项,也应该给出个提示:请确认复制的内容不包含excel等的隐藏列!   无论如果这样就比较复杂了。。。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/27 23:06:00 [显示全部帖子]

以下是引用yankunhao在2010-6-27 22:42:00的发言:

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

这个问题好解决: 可以恢复原移动的隐藏列回到原来的位置,或者粘贴后执行一下表视图代码即可。


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/28 12:18:00 [显示全部帖子]

C版的可以,只是都从第一列开始粘贴········

 

老大的也有问题,看下图:

 
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2010-6-28 12:19:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/28 12:48:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-6-28 12:33:00的发言:
这个没有撤销和反撤销的

您的代码我测试后,直接的结果是17楼的第一个图,经过撤销和反撤销(即恢复)后,就得到第二个图。。。。。

所以,在你代码后面加上:

Syscmd.Edit.Undo()
Syscmd.Edit.Redo()
for d as integer = 0 to currenttable.count-1
    currenttable(d,0) = currenttable(d,0).trim(" ")
next

后,才能得到正确的结果: 


此主题相关图片如下:未命名0.jpg
按此在新窗口浏览图片

上面的 for......next 是从第一列开始粘贴的,要从任何单元格开始粘贴就要改为:

For c1 As Integer = t.toprow to t.Cols.Count - 1       ‘或t.bottomrow -1
    currenttable(c1,t.LeftCol ) = currenttable(c1,t.LeftCol ).trim(" ")
next

[此贴子已经被作者于2010-6-28 12:58:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/6/29 19:02:00 [显示全部帖子]

贴出代码 并 提供你的文件来测试一下看······

 回到顶部