读取多个文本文件到同一Word文档中
实例说明
读取多个文本文件到同一个Word文档中的实现方法与读取单个文本文件到Word文档基本相同,先根据用户选择的文本文件集合使用StreamReader读取每一个文本文件的文本内容,然后将所有文本文件的内容写入Word文档。实例运行效果如图1所示。
图1 读取多个文本文件到同一Word文档中
实例运行中单击”浏览”按钮,会将用户所选择文本文件的路径放入文件列表中,后期可以遍历文件列表使用StreamReader依次读取每一个文本文件的内容到Word文档中,多个文本文件如图2、3、4和5所示。
图2 第一个文本文件
图3 第二个文本文件
图4 第3个文本文件
图5 第4个文本文件 实例运行中单击”创建Word文档”按钮,首先会创建一个Word文档,然后将多个文本文件的内容写入文本文档。被写入多个文本文件内容的Word文档如图6所示。
图6 被写入多个文本文件内容的Word文档
关键技术
本实例在实现时,主要用到了StreamReader对象依次读取用户指定的文本文件集合中的字符串信息,并将字符串信息写入到Word文档。
设计过程
(1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为Multi-TxtToWord。
(2)使用C#操作Word文档,需要引用相关的COM组件,引用COM组件的步骤请参照实例”创建Word文档”中的设计过程。
(3)更改默认窗体Form1的Name属性为Frm_Main,更改Text属性为”读取多个文本文件到同一Word文档中”,向窗体中添加一个ListBox控件,用于显示文本文件的集合;向窗体中添加4个Button按钮,按钮分别用于向ListBox中添加文本文件路径、选择Word文档保存路径、创建Word文档和显示Word文档。
(4)程序主要代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| private void btn_New_Click(object sender, EventArgs e) { btn_New.Enabled = false; ThreadPool.QueueUserWorkItem( (P_temp) => { G_wa = new Word.Application(); Word.Document P_wd = G_wa.Documents.Add( ref G_missing, ref G_missing, ref G_missing, ref G_missing); Word.Range P_Range = P_wd.Paragraphs[1].Range; foreach (string s in G_List_FileName) { using (StreamReader P_StreamReader = new StreamReader(s, Encoding.Default)) { P_Range.Text += P_StreamReader.ReadToEnd(); } } G_str_path = string.Format( @"{0}\\{1}", G_FolderBrowserDialog.SelectedPath, DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc"); P_wd.SaveAs( ref G_str_path, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing, ref G_missing); ((Word._Application)G_wa.Application).Quit( ref G_missing, ref G_missing, ref G_missing); this.Invoke( (MethodInvoker)(() => { btn_Display.Enabled = true; MessageBox.Show("添加文档成功!", "提示!"); })); }); }
|
秘笈心法
心法领悟013:合理使用StreamReader对象的ReadToEnd方法!
使用StreamReader对象的ReadToEnd方法可以方便的一次性全部读取出文本文件的所有文本信息,适当的使用此方法会使文件操作更加便捷。