c# 操作 word 时 Range.copy() 拿不到数据

caoliyy 2011-06-11 09:12:42
我在操作word的时候用到了range.copy() 这样可以方便我操作word内容。
可是当我在程序中使用了range.copy() 后,再paste()时,发现剪切板无内容可用

但是,,但是,,在我调试的时候,只要在copy()方法上停留,copy()就可以拿到内容,不停留则仍然拿不到

代码如下:
if (dt.Rows.Count > 0 && WordDoc.Tables.Count>0)
{
WordDoc.Tables[1].Range.Copy(); 复制步骤
for (int i = 1; i < dt.Rows.Count; i++)
{
WordDoc.Tables[1].Range.Paste(); 粘贴步骤
ro = WordDoc.Tables[1].Rows.Count / 2 + 1;
dr = WordDoc.Tables[1].Rows[ro];
WordDoc.Tables[1].Split(ref dr);
}
...全文
278 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoliyy 2011-09-20
  • 打赏
  • 举报
回复
问题已经解决,最终我发现,在copy之前,word文档必须保存为实际的物理文档,这样才能拷贝到,如果只是在内存中new一个word文档,然后copy 的话就会出现 copy不到的情况。另外为什么在调试中可以不用保存就能copy到,可能是因为调试不是预编译,所以可以copy到,希望对大家有帮助
桃子 2011-07-20
  • 打赏
  • 举报
回复
我也碰到了类似的问题,range.cop取不到数据...但是调试的时候每次都能取到

估计是因为copy不是实时的拷贝的,需要在copy后面做判断,等copy完了,再执行其他的操作
Maa 2011-06-11
  • 打赏
  • 举报
回复
应该是下面这句代码有问题:
WordDoc.Tables[1].Range.Paste(); 粘贴步骤


你执行的拷贝是:WordDoc.Tables[1].Range.Copy();
你执行的粘贴是:WordDoc.Tables[1].Range.Paste();

这个逻辑就是选中表格[1],拷贝,粘贴。lz你试试在一个真实的word文档里,选中一个表格,拷贝,粘贴,得到的结果是不是没有任何变化。不知道你能理解我的意思不,呵呵。

解决方案就是:
你要设定一个新的range,不能在原来的range上执行paste,否则还是覆盖以前的内容,看上去就跟没有执行拷贝粘贴一样,实际上是执行了的,呵呵。

仅仅是作为搬运工。 算法精粹——举一反三,抛弃题海战术 本书的目标读者是准备去硅谷找工作的码农,也适用于在国内找工作的码农,以及刚接触ACM算法竞赛的新手。 市场上讲解算法的书已经汗牛充栋,为什么还要写这本书呢?主要原因是我对目前市场上的大部分算法书都不太满意。 本书有如下特色: 背后有强大的AlgoHub支持。 本书的所有题目,都可以在 www.algohub.org(即将上线) 上在线判断代码。这样的一大好处是,读者可以边看书,边实现自己的代码,然后提交到网站上验证自己的想法是否正确。AlgoHub的使命是成为最好的算法学习和交流平台。AlgoHub囊括了 POJ, ZOJ, leetcode, HackerRank 等网站的经典题目(一些质量不高的题目则忽略),且 AlgoHub有非常简单的加题系统,用户不需要写一行代码即可自己添加题目,所以AlgoHub的题库还在飞速增长中。 每道题都有完整的代码。 市场上的大部分书,都会讲思路,但给出的代码都是片段,不是完整可编译的代码。本书每题都有完整的代码,且每个代码经过千锤百炼,保证可读性的前提下尽可能简短,方面读者在面试中能快速写出来。 每道题都有多种解法。 本书的宗旨是,用尽可能少的题目,覆盖尽可能多的算法。本书中的的每道题都有多种解法,每种解法不是简单的小改进,而是完全不同的思路,力求举一反三,让读者触类旁通。 本书支持多种主流编程语言。 目前支持 Java, C++, C#, Python, Ruby, JavaScript, Swift, Scala, Clojure, 将来还会支持更多编程语言。 在线阅读 https://www.gitbook.com/book/soulmachine/algorithm-essentials/ 内容目录 介绍 线性表 数组 Remove Duplicates from Sorted Array Remove Duplicates from Sorted Array II Longest Consecutive Sequence Two Sum 3Sum 3Sum Closest 4Sum Remove Element Move Zeroes Next Permutation Permutation Sequence Valid Sudoku Trapping Rain Water Rotate Image Plus One Climbing Stairs Set Matrix Zeroes Gas Station Candy Majority Element Rotate Array Contains Duplicate Contains Duplicate II Contains Duplicate III Product of Array Except Self Game of Life Increasing Triplet Subsequence 单链表 Reverse Linked List Odd Even Linked List Add Two Numbers Reverse Linked List II Partition List Remove Duplicates from Sorted List Remove Duplicates from Sorted List II Rotate List Remove Nth Node From End of List Swap Nodes in Pairs Reverse Nodes in k-Group Copy List with Random Pointer Linked List Cycle Linked List Cycle II Reorder List LRU Cache Palindrome Linked List 字符串 Valid Palindrome Implement strStr() String to Integer (atoi) Add Binary Longest Palindromic Substring Regular Expression Matching Wildcard Matching Longest Common Prefix Valid Number Integer to Roman Roman to Integer Count and Say Anagrams Valid Anagram Simplify Path Length of Last Word Isomorphic Strings Word Pattern 栈和队列 栈 Min Stack Valid Parentheses L

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧