ASP.NET利用DOC模板导出Word

首先创建DOC模板

 

再次,在项目中相关页面添加此重点方法

重点方法:

 private string PrintWord()
        {
            try
            {
                string templatePath = _SaveDocPath + "/Template/RPMB.doc";
                //生成的文档路径
                filePath = _SaveDocPath + "/HZM/";
                if (!Directory.Exists(filePath))
                    Directory.CreateDirectory(filePath);
                if (!File.Exists(templatePath)) return "error:服务器没有模版";

                filePath = filePath + DateTime.Now.ToString("yyyyMMddHHmmss") + ".doc";
                //copy一份
                File.Copy(templatePath, filePath, true);

                object oMissing = System.Reflection.Missing.Value;
                app = new Word.Application();
                app.Visible = false;
                object fileName = filePath;
                doc = app.Documents.Open(ref fileName,
               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
               ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                if (doc == null)
                {
                    return "error:服务器没有打开Word";
                }
                //判断书签 //加入doc书签的方法
                if (doc.Bookmarks.Exists("KJJBJNF"))
                {
                    doc.Bookmarks["KJJBJNF"].Range.Text = DateTime.Now.ToString("yyyyMMddHHmmss").ToString() + "标题";
                }


                Word.Tables tabs1 = doc.Tables;
                if (tabs1 != null && tabs1.Count > 0)
                {
                    Word.Table dt_Word = tabs1[1];

                    string strsql = "select * from stuInfo";
                    DataTable dt_Stu = RunSQLReturnTable(strsql);
                    //默认从第2行开始,第1行为模板中的标头
                    int rowIdex = 2;
                    foreach (DataRow row in dt_Stu.Rows)
                    {
                        object miss = System.Reflection.Missing.Value;
                        dt_Word.Rows.Add(miss);

                        //将从数据库中查询的数据,此处进行循环加载即可

                        //1 .向单元格中添加数据
                        dt_Word.Cell(rowIdex, 1).Range.Text = row["No"].ToString();

                        //2. 设置该单元格中字体的对齐方式
                        dt_Word.Cell(rowIdex, 1).Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;

                        dt_Word.Cell(rowIdex, 2).Range.Text = row["Name"].ToString();
                        dt_Word.Cell(rowIdex, 3).Range.Text = row["Sex"].ToString();
                        dt_Word.Cell(rowIdex, 4).Range.Text = row["Age"].ToString();

                        // 3 .合并单元格Merge(行,列)
                        //dt_Word.Cell(rowIdex, 3).Merge(dt_Word.Cell(rowIdex, 4));

                        rowIdex++;
                    }
                }
                doc.Save();
                QuitWord();
            }
            catch (Exception ex)
            {
                QuitWord();
                return "error:" + ex.Message;
            }
            return "true";
        }


 

3.导出即可。

 

附加源码 http://download.csdn.net/detail/hugaozhuang/6652495

 

阅读更多
个人分类: ASP.NET
上一篇用户'NT AUTHORITY\NETWORK SERVICE' 登录失败。
下一篇ASP.NET中DOC模板的书签制作
想对作者说点什么? 我来说一句

asp.net 利用word模板导出word文件

2011年04月25日 243KB 下载

没有更多推荐了,返回首页

关闭
关闭