讨论一段代码!!!

wosizy 2011-06-02 11:01:46
最近在网上看了一段往word文档中写入文字的代码例子
第一次写这方面的代码 所以请各位懂的来讨论一二

问题:1、下面这段代码能往服务器端的路径下的word文档写入文字吗。
2、当我的路径下面的word文档名称一样时 怎么使它能把文字追加进去
现在不能往同一个word里面追加文字 它现在直接替换了。

求改写...

Object Nothing = System.Reflection.Missing.Value;
//取得Word文件保存路径
object filename = "C:\myword.doc";
//创建一个名为WordApp的组件对象
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
//创建一个名为WordDoc的文档对象
Microsoft.Office.Interop.Word.Document WordDoc = WordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
//增加一表格
Microsoft.Office.Interop.Word.Table table = WordDoc.Tables.Add(WordApp.Selection.Range, 1, 1, ref Nothing, ref Nothing);
//在表格第一单元格中添加自定义的文字内容
table.Cell(1, 1).Range.Text = wordText.Text;
//在文档空白地方添加文字内容
WordDoc.Paragraphs.Last.Range.Text = DateTime.Now.ToString("yyyy年M月d日h时s分m秒");//写入时间
//将WordDoc文档对象的内容保存为DOC文档
WordDoc.SaveAs(ref filename, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);
//关闭WordDoc文档对象
WordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
//关闭WordApp组件对象
WordApp.Quit(ref Nothing, ref Nothing, ref Nothing);
...全文
107 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx8849 2011-06-02
  • 打赏
  • 举报
回复
没做过这个,不知道可不可以先把word以前的内容赋值给变量,然后在用变量加上现在输入的内容
Lyulf 2011-06-02
  • 打赏
  • 举报
回复
支持2楼观点~~
porschev 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wosizy 的回复:]

引用 4 楼 porschev 的回复:
替换和你追加出来的结果一样。。

为什么要追加。。。

追加效率应该还差些吧。。

现在是不要替换啊! 比如原来这个word文档里有字符abcdef
我现在又往这个word文档里写入hhhhh 那么这个文档里应该是abcdefhhhhh了
就这个意思
[/Quote]

哦。。

FileStream fs = new FileStream("你的wordy文件",FileMode.Append,FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.Write(要追加的);

这样应该可以。。
wosizy 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 porschev 的回复:]
替换和你追加出来的结果一样。。

为什么要追加。。。

追加效率应该还差些吧。。
[/Quote]
现在是不要替换啊! 比如原来这个word文档里有字符abcdef
我现在又往这个word文档里写入hhhhh 那么这个文档里应该是abcdefhhhhh了
就这个意思
wosizy 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
object filename = "C:\myword.doc";
=>
object filename = Server.MapPath("~/myword.doc");


用 Document.Open() 打开,并且追加文本。
[/Quote]

word文档不在 项目的目录下
wosizy 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
哥哥

直接替换

和追加文字的区别是啥。。
[/Quote]
怪我没说清楚
意思现在这段代码 假如文档名称一样的话 你往里面写文字 以前的文字就没了
我现在想 假如文档名称一样 往里面写文字 以前的文字还要在!
还有这段代码我还没放在服务器端 测试
不知道能在客户端往服务器端的word中写文字吗?
porschev 2011-06-02
  • 打赏
  • 举报
回复

替换和你追加出来的结果一样。。

为什么要追加。。。

追加效率应该还差些吧。。
  • 打赏
  • 举报
回复
1,权限足够的话,可以写入。
2.先打开,再追加,LS说的对。
子夜__ 2011-06-02
  • 打赏
  • 举报
回复
哥哥

直接替换

和追加文字的区别是啥。。

threenewbee 2011-06-02
  • 打赏
  • 举报
回复
object filename = "C:\myword.doc";
=>
object filename = Server.MapPath("~/myword.doc");


用 Document.Open() 打开,并且追加文本。
wosizy 2011-06-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 porschev 的回复:]
还是这个方法好。。你看看。。
[/Quote]
不做! 我改了下 能实现我要的效果!
wosizy 2011-06-02
  • 打赏
  • 举报
回复
问题已解决 结贴!
Lisliefor 2011-06-02
  • 打赏
  • 举报
回复
替换也能实现你的功能:

1. 用流先读取word目前所有的内容
2. 把要追加的内容加入流中
3. 写doc文件
wosizy 2011-06-02
  • 打赏
  • 举报
回复
总结下 大体意思就是判断这个路径下是否有这个word文件,有则往里面追加新的文字 没有则新建一个woed文件并且添加文字

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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