使用C#生成word或excel文档的问题

mirrorspace 2015-04-01 09:54:45
如题:
使用C#生成WORD文档 .net4.0 vs2013 office2007
1.模板法:先建WORD文档,画好内容格式后,在内容地方插入书签.然后在C#载入文档,找相应书签赋值
2.用程序写入内容和格式信息
我想使用第1 种方法,因为用程序设定WORD文档的格式太麻烦了,
数据是一个表格,行数不确定.如果用第1 种方法的话, 要怎么样循环生成表格的内容?
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirrorspace 2015-04-02
  • 打赏
  • 举报
回复
找了个DocX.这个生成word.语法和操作XML的一样.挺好用的
mirrorspace 2015-04-02
  • 打赏
  • 举报
回复
引用 1 楼 devmiao 的回复:
用npoi可以实现
不错呢,我下载了这个NOPI,在哪里有它的使用文档或者DEMO呀?
jjj_dashagua 2015-04-02
  • 打赏
  • 举报
回复
一、C#创建word文档 private Word.Application G_wa;//定义Word应用程序字段 private object G_missing = //定义G_missing字段并添加引用 System.Reflection.Missing.Value; private FolderBrowserDialog G_FolderBrowserDialog;//定义浏览文件夹字段 private object G_str_path;//定义文件保存路径字段 private void btn_New_Click(object sender, EventArgs e) { btn_New.Enabled = false;//将新建按钮设置为不可用 ThreadPool.QueueUserWorkItem(//开始线程池 (pp) =>//使用lambda表达式 { G_wa = new Microsoft.Office.Interop.Word.Application();//创建应用程序对象 object P_obj = "Normal.dot";//定义文档模板 Word.Document P_wd = G_wa.Documents.Add(//向Word应用程序中添加文档 ref P_obj, ref G_missing, ref G_missing, ref G_missing); G_str_path = string.Format(//计算文件保存路径 @"{0}\{1}", G_FolderBrowserDialog.SelectedPath, DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc"); P_wd.SaveAs(//保存Word文件 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)(() =>//使用lambda表达式 { MessageBox.Show(//提示已经创建Word "成功创建Word文档!", "提示!"); btn_display.Enabled = true;//启用显示按钮 })); }); }//codego.net/ 二、创建Excel文件并保存 private void btn_Create_Click(object sender, EventArgs e) { string P_str_path = txt_Path.Text;//记录路径 Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();//实例化Excel对象 Microsoft.Office.Interop.Excel.Workbook newWorkBook = excel.Application.Workbooks.Add(true);//添加新工作簿 object missing = System.Reflection.Missing.Value;//获取缺少的object类型值 newWorkBook.Worksheets.Add(missing, missing, missing, missing);//向Excel文件中增加工作表 if (P_str_path.EndsWith("\\"))//判断路径是否\结尾 newWorkBook.SaveCopyAs(P_str_path + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");//保存Excel文件 else newWorkBook.SaveCopyAs(P_str_path + "\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".xls");//保存Excel文件 MessageBox.Show("Excel文件创建成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);//弹出提示信息 System.Diagnostics.Process[] excelProcess = System.Diagnostics.Process.GetProcessesByName("EXCEL");//实例化进程对象 foreach (System.Diagnostics.Process p in excelProcess) p.Kill();//关闭进程 }
mirrorspace 2015-04-02
  • 打赏
  • 举报
回复
感谢 楼上2人 还是用DocX了.已经捉磨一天了.可惜呀,还是没找到文档.
引用 6 楼 wyd1520 的回复:
[quote=引用 5 楼 mirror030 的回复:] DOCX也没有找到文档.
找Aspose.World 到官网上去下载[/quote]
引用 7 楼 Z65443344 的回复:
NPOI的DEMO 这是BS的,不过帮助类可以直接copy到CS里用,反正不过是一个类而已,跟架构没关系
於黾 2015-04-02
  • 打赏
  • 举报
回复
NPOI的DEMO 这是BS的,不过帮助类可以直接copy到CS里用,反正不过是一个类而已,跟架构没关系
本拉灯 2015-04-02
  • 打赏
  • 举报
回复
引用 5 楼 mirror030 的回复:
DOCX也没有找到文档.
找Aspose.World 到官网上去下载
mirrorspace 2015-04-02
  • 打赏
  • 举报
回复
DOCX也没有找到文档.
devmiao 2015-04-01
  • 打赏
  • 举报
回复
用npoi可以实现

110,533

社区成员

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

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

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