09
2019
01

c# word 操作系列之Word代码实现

参考资料:

http://www.cnblogs.com/wngwz/archive/2004/08/19/34678.html

https://www.cnblogs.com/xh6300/p/5915717.html

09
2019
01

js异步脚本

HTML5 为<script>元素定义了 async 属性。这个属性与 defer 属性类似,都用于改变处理脚本的行为。同样与 defer 类似,async 只适用于外部脚本文件,并告诉浏览器立即下载文件。但与 defer不同的是,标记为 async 的脚本并不保证按照指定它们的先后顺序执行。例如:

<!DOCTYPE html> 
<html> 
 <head> 
 <title>Example HTML Page</title> 
 <script type="text/javascript" async src="example1.js"></script> 
 <script type="text/javascript" async src="example2.js"></script> 
 </head> 
 <body> 
 <!-- 这里放内容 --> 
 </body> 
</html>

在以上代码中,第二个脚本文件可能会在第一个脚本文件之前执行。因此,确保两者之间互不依赖

09
2019
01

js延迟脚本

HTML 4.01 为<script>标签定义了 defer 属性。这个属性的用途是表明脚本在执行时不会影响页

面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置

defer 属性,相当于告诉浏览器立即下载,但延迟执行。

<!DOCTYPE html> 
<html> 
 <head> 
 <title>Example HTML Page</title> 
 <script type="text/javascript" defer="defer" src="example1.js"></script> 
 <script type="text/javascript" defer="defer" src="example2.js"></script> 
 </head> 
 <body> 
 <!-- 这里放内容 --> 
 </body> 
</html>

在这个例子中,虽然我们把<script>元素放在了文档的<head>元素中,但其中包含的脚本将延迟

09
2019
01

c# word 操作系列之Paragraph对象

public void ManipulateRangeText() 
{
    // Retrieve contents of first and second paragraphs
    string  str1 = ThisDocument.Paragraphs[1].Range.Text;
    string  str2 = ThisDocument.Paragraphs[2].Range.Text;
    
// 两个自然段相互交换
    Word.Range rng1 = ThisDocument.Paragraphs[1].Range;
    rng1.Text = str2;
 
    Word.Range rng2 = ThisDocument.Paragraphs[2].Range;
    rng2.Text = str1;
 
    // 显示结果
    rng1.Select();
    MessageBox.Show(rng1.Text, "ManipulateRangeText");
    rng2.Select();
MessageBox.Show(rng2.Text, "ManipulateRangeText");
    Object unit = Word.WdUnits.wdCharacter;
    Object count = -1;
    rng1.MoveEnd(ref unit, ref count);
    // Write new text for paragraph 1.
rng1.Text = "new content for paragraph 1.";
 
rng2.Text = "new content for paragraph 2.";
    // Pause to display the results.
    rng1.Select();
    MessageBox.Show(rng1.Text, "ManipulateRangeText");
    rng2.Select();
    MessageBox.Show(rng2.Text, "ManipulateRangeText");
 
unit = Word.WdUnits.wdCharacter;
   count = 1;
   rng1.MoveEnd(ref unit, ref count);
   // Note that in C#, you must specify 
  // both parameters--it's up to you 
  // to calculate the length of the range.
  unit = Word.WdUnits.wdCharacter;
  count = rng2.Characters.Count;
  rng2.Delete(ref unit, ref count);
  // C#
  rng1.Text = str1;
  // C#
  rng1.InsertAfter(str2);
  rng1.Select();
}


09
2019
01

c# word 操作系列之Range对象

Range对象也代表一个区域。与使用Selection相比较,Range的优势在于

09
2019
01

c# word 操作系列之Selection 对象

Selection对象代表当前选择的area。在word应用程序中,假如你要让一段字符变成黑体,你必须首先选择该段文字,然后应用样式。在代码中也是同样的道理,你要首先定义selection的区域然后进行操作。你可以使用Selection对象在文档中进行选择,格式化,操作,添加文本等。

Selection对象是始终存在的,如果当前没有选择任何东西,那么它代表一个insertion point。因此,在操作Seleciton之前知道它包含的内容是非常重要的。

Tips:    Selection对象与Range对象有很多成员是类似的,它们之间的区别是Selection对象指的是现实在图形界面的区域,而Range对象代表的区域是不可见的(当然通过调用方法可以使其可见)

09
2019
01

c# word 操作系列之Close 关闭word文档

Close 关闭word文档

09
2019
01

c# word 操作系列之Save 保存word文档

//Save 保存word文档
// 保存所有文档
Object noPrompt = true;
Object originalFormat = Type.Missing;
ThisApplication.Documents.Save(ref noPrompt, ref originalFormat);
 
// C#保存当前文档
ThisApplication.ActiveDocument.Save();
// 保存指定名称的文档
Object file = "MyNewDocument.doc";
ThisApplication.Documents.get_Item(ref file).Save();

 SaveAs 另存为

09
2019
01

c# word 操作系列之Open 打开word文档

Open 打开word文档

09
2019
01

c# word 操作系列之打开,关闭与新建文档

Add           新建word文档