关闭

ASP.NET利用DOC模板导出Word

1258人阅读 评论(0) 收藏 举报
分类:

首先创建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

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:265157次
    • 积分:3173
    • 等级:
    • 排名:第11469名
    • 原创:93篇
    • 转载:17篇
    • 译文:0篇
    • 评论:17条
    文章分类
    最新评论