c#操作Word文件 导出数据到word文档 (table 书签方式)

摘要:
1.使用System添加一个表以显示为问答两列;使用System.Collections。通用的使用系统。数据使用系统。Linq;使用系统。网状物使用System.Web。UI;使用System.Web.UI。Web控件;使用Aspose。话;使用TJSupervisor.Mo

1.添加一个table 显示成问答两列

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Aspose.Words;
using TJSupervisor.ModulePluginsHandler.Business.Service;

namespace HY.DevelopmentWeb.ProjectWeb.Page.InquiryRecordPrint
{
    public partial class InquiryRecordWord : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                int CaseId;
                string EmpId;
                if (Request.QueryString["Id"] != null)
                {
                    CaseId = Convert.ToInt32(Request.QueryString["Id"].ToString());
                    EmpId = Request.QueryString["EmpId"].ToString();
                }
                else
                {
                    return;
                }
                InquiryRecordPrintService cs = new InquiryRecordPrintService();

                DataSet ds = new DataSet();
                ds = cs.GetInquiryRecordPrint(CaseId, EmpId);
                string tmppath = Server.MapPath("~/Data/InquiryRecordPrint.doc");
                string dataDir = Server.MapPath("~/Data/");
                Document doc = new Document(tmppath); //载入模板
                DocumentBuilder builder = new DocumentBuilder(doc);

                doc.Range.Replace("{{InquiriedEmpName}}", ds.Tables[0].Rows[0]["InquiriedEmpName"].ToString(), false, false);
                doc.Range.Replace("{{Gender}}", ds.Tables[0].Rows[0]["Gender"].ToString(), false, false);
                doc.Range.Replace("{{Marriage}}", ds.Tables[0].Rows[0]["Marriage"].ToString(), false, false);
                doc.Range.Replace("{{OrgName}}", ds.Tables[0].Rows[0]["OrgName"].ToString(), false, false);
                doc.Range.Replace("{{EmpJob}}", ds.Tables[0].Rows[0]["EmpJob"].ToString(), false, false);
                doc.Range.Replace("{{EntryTime}}", ds.Tables[0].Rows[0]["EmployedDate"].ToString(), false, false);
                doc.Range.Replace("{{PermanentAddr}}", ds.Tables[0].Rows[0]["PermanentAddr"].ToString(), false, false);
                doc.Range.Replace("{{ResidenceAddr}}", ds.Tables[0].Rows[0]["ResidenceAddr"].ToString(), false, false);
                doc.Range.Replace("{{ContactTel}}", ds.Tables[0].Rows[0]["ContactTel"].ToString(), false, false);
                doc.Range.Replace("{{IdentityNo}}", ds.Tables[0].Rows[0]["IdentityNo"].ToString(), false, false);
                doc.Range.Replace("{{InquiryDateBegin}}", ds.Tables[0].Rows[0]["InquiryDateBegin"].ToString(), false, false);
                doc.Range.Replace("{{InquiryDateEnd}}", ds.Tables[0].Rows[0]["InquiryDateEnd"].ToString(), false, false);
                doc.Range.Replace("{{InquiryPlace}}", ds.Tables[0].Rows[0]["InquiryPlace"].ToString(), false, false);
                doc.Range.Replace("{{InquiryItems}}", ds.Tables[0].Rows[0]["InquiryItems"].ToString(), false, false);

                //Insert some table  
                bool isbool = builder.MoveToBookmark("Table");
                if (isbool)
                {
                    builder.StartTable();
                    for (int i = 0; i < (ds.Tables[1].Rows.Count * 2); i++)
                    {
                        
                        builder.InsertCell(); //动态添加列
                        builder.Font.Name = "微软雅黑";
                        builder.Font.Size = 10;
                        builder.Bold = false;
                        builder.CellFormat.Width = 800;
                        builder.CellFormat.Borders.Right.Color = System.Drawing.Color.White;//改变左右边框为白色
                        builder.CellFormat.Borders.Left.Color = System.Drawing.Color.White;
                        
                        if (i % 2 == 0)
                        {
                            builder.Write("问(" + ((i / 2) + 1).ToString() + ")" + ds.Tables[1].Rows[(i / 2)]["Question"].ToString());
                        }
                        else
                        {
                            builder.Write("答(" + (((i - 1) / 2) + 1).ToString() + ")" + ds.Tables[1].Rows[((i - 1) / 2)]["Answer"].ToString());
                        }
                        builder.EndRow();
                    }
                    builder.EndTable();
                }

                string fullName = "InquiryRecordPrint_" + System.DateTime.Now.Millisecond.ToString();
                //save word
                doc.Save(Response, "询问笔录_" + ds.Tables[0].Rows[0]["InquiryItems"].ToString(), ContentDisposition.Attachment, new Aspose.Words.Saving.DocSaveOptions(SaveFormat.Doc));              
                Context.Response.Write("{success:'true',fullName:'" + fullName + "'}");
            }
            catch (Exception ex)
            {
                Context.Response.Write("{success:'false',fullName:'" + ex.Message + "'}");
            }
        }
    }
}

2.靠查出来的数据循环table的行

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Aspose.Words;
using TJSupervisor.ModulePluginsHandler.Business.Service;

namespace HY.DevelopmentWeb.ProjectWeb.Page.CaseReportPrint
{
    public partial class CaseReportWord : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                int CaseId;
                if (Request.QueryString["Id"] != null)
                {
                    CaseId = Convert.ToInt32(Request.QueryString["Id"].ToString());
                }
                else
                {
                    return;
                }
                CaseReportPrintService cs = new CaseReportPrintService();

                DataSet ds = new DataSet();
                ds = cs.GetPrintCaseInfo(CaseId);
                string tmppath = Server.MapPath("~/Data/CaseReport.docx");
                string dataDir = Server.MapPath("~/Data/");
                Document doc = new Document(tmppath); //载入模板
                DocumentBuilder builder = new DocumentBuilder(doc);
                //for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                //{

                //    DataRow dr = ds.Tables[0].Rows[i];
                //    doc.Range.Replace("{{replace}}", dr["EmpName"].ToString() + dr["gender"].ToString() + dr["Entrytime"].ToString() + "入职途家,现任" + dr["job"].ToString(), false, false); // {{EmpName}},{{gender}},{{Entrytime}}入职途家,现任{{job}}。
                //    //doc.Range.Replace("{{EmpName}}", dr["EmpName"].ToString(), false, false);
                //    //doc.Range.Replace("{{gender}}", dr["gender"].ToString(), false, false);
                //    //doc.Range.Replace("{{Entrytime}}", dr["Entrytime"].ToString(), false, false);
                //    //doc.Range.Replace("{{job}}", dr["job"].ToString(), false, false);

                //}

                  bool isbool = builder.MoveToBookmark("Table");
                  if (isbool)
                  {
                      builder.StartTable();
                      for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                      {

                          builder.InsertCell(); //动态添加列
                          builder.Font.Name = "宋体";
                          builder.Font.Size = 12;
                          builder.Bold = false;
                          builder.CellFormat.Width = 800;
                          builder.CellFormat.Borders.Right.Color = System.Drawing.Color.White;//改变左右边框为白色
                          builder.CellFormat.Borders.Left.Color = System.Drawing.Color.White;
                          builder.CellFormat.Borders.Top.Color = System.Drawing.Color.White;//改变左右边框为白色
                          builder.CellFormat.Borders.Bottom.Color = System.Drawing.Color.White;

                          //doc.Range.Replace("{{replace}}", ds.Tables[0].Rows[i]["EmpName"].ToString() + ds.Tables[0].Rows[i]["gender"].ToString() + ds.Tables[0].Rows[i]["Entrytime"].ToString() + "入职途家,现任" + ds.Tables[0].Rows[i]["job"].ToString(), false, false); // {{EmpName}},{{gender}},{{Entrytime}}入职途家,现任{{job}}。
                          builder.Write(ds.Tables[0].Rows[i]["EmpName"].ToString() +"," +ds.Tables[0].Rows[i]["gender"].ToString()+"," + ds.Tables[0].Rows[i]["Entrytime"].ToString() + "入职途家,现任" + ds.Tables[0].Rows[i]["job"].ToString()); // {{EmpName}},{{gender}},{{Entrytime}}入职途家,现任{{job}}。
                          builder.EndRow();
                      }
                      builder.EndTable();
                  }
                doc.Range.Replace("{{RegisterSN}}", ds.Tables[0].Rows[0]["RegisterSN"].ToString(), false, false);
                doc.Range.Replace("{{Name}}", ds.Tables[0].Rows[0]["Name"].ToString(), false, false);
                doc.Range.Replace("{{OccurDateBegin}}", ds.Tables[0].Rows[0]["OccurDateBegin"].ToString(), false, false);
                doc.Range.Replace("{{OccurDateEnd}}", ds.Tables[0].Rows[0]["OccurDateEnd"].ToString(), false, false);
                doc.Range.Replace("{{OccurPlace}}", ds.Tables[0].Rows[0]["OccurPlace"].ToString(), false, false);
                doc.Range.Replace("{{OccurOrgName}}", ds.Tables[0].Rows[0]["OccurOrgName"].ToString(), false, false);
                doc.Range.Replace("{{InspectorEmpName}}", ds.Tables[0].Rows[0]["InspectorEmpName"].ToString(), false, false);
                doc.Range.Replace("{{Data04}}", ds.Tables[0].Rows[0]["job"].ToString(), false, false);
                doc.Range.Replace("{{JointEmpNames}}", ds.Tables[0].Rows[0]["JointEmpNames"].ToString(), false, false);
                doc.Range.Replace("{{RegisterDate}}", ds.Tables[0].Rows[0]["RegisterDate"].ToString(), false, false);
                doc.Range.Replace("{{AcceptDate}}", ds.Tables[0].Rows[0]["AcceptDate"].ToString(), false, false);
                doc.Range.Replace("{{Channel}}", ds.Tables[0].Rows[0]["Channel"].ToString(), false, false);
              
                doc.Range.Replace("{{Step}}", ds.Tables[0].Rows[0]["Step"].ToString(), false, false);
                doc.Range.Replace("{{Discovery}}", ds.Tables[0].Rows[0]["Discovery"].ToString(), false, false);
                doc.Range.Replace("{{Conclusion}}", ds.Tables[0].Rows[0]["Conclusion"].ToString(), false, false);
                doc.Range.Replace("{{Suggestion}}", ds.Tables[0].Rows[0]["Suggestion"].ToString(), false, false);
                doc.Range.Replace("{{DateTime}}", ds.Tables[0].Rows[0]["DateTime"].ToString(), false, false);

                string fullName = "CaseReportWord_" + System.DateTime.Now.Millisecond.ToString();
                //save word
                doc.Save(Response, "调查报告_" + ds.Tables[0].Rows[0]["Name"].ToString(),ContentDisposition.Attachment, new Aspose.Words.Saving.DocSaveOptions(SaveFormat.Doc));
                Context.Response.Write("{success:'true',fullName:'" + fullName + "'}");
            }
            catch (Exception ex)
            {
                Context.Response.Write("{success:'false',fullName:'" + ex.Message + "'}");
            }
        }
    }
}

免责声明:文章转载自《c#操作Word文件 导出数据到word文档 (table 书签方式)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux sed 批量替换字符串oracle数据库的创建及安装odac后oracle可能出现不能访问情况解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Lua字符串及模式匹配

字符类基础函数举例介绍: string.len( ‘string’ ) string.lower( ‘string’ ) string.upper( ‘string’ ) string.rep( ‘a’ , 5 ) ==> aaaaa string.sub( ‘string’ , I , j ) string.sub(...

利用MySQL数据库如何解决大数据量存储问题?

提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节; 2.数据项:是否有大字段,那些字段的值是否经常被更新; 3.数据查询SQL条件:哪些数据项的列名称经常出现在WHERE、GROUP BY、...

解决JSON包含HTML标签无法显示的问题

主要是将json无法识别的字符进行转义     function dotran($str) {        $str = str_replace('"','//"',$str);        $str = str_replace("/r/n",'//r//n',$str);        $str = str_replace("/t",'//t',...

怎么给element表格添加必填*星号?

说明关于element表头添加东西的,我写过一篇其他的博客,那个是用全局注册组件的方式处理的 vue怎么实现element表格里表头信息提示功能? 代码实现第一步:给el-table添加header-cell-class-name <el-table :header-cell-class-name="starAdd"></el-table...

python 之 数据库(修改表、复制表、删除表、单表查询)

10.8 修改表、复制表、删除表 10.81 修改表 alter table 1. 修改表名 alter table表名 rename 新表名; 2. 增加字段 alter table 表名 add 字段名 数据类型 [完整性约束条件…]; alter table t1 add stu char(10) not nullafter name;...

解决 各浏览器不支持display:flex的最简单办法

通常我们想让一行元素平均分配宽度,而且还是可以扩展自适应的;不管元素个数多少; 那么我们通常不考虑IE9以下及其它个别浏览器的时候 父级用 display:flex; 子级用flex:1; 但有时产品 要求 兼容 各浏览器 及IE8/9;我们不得不想尽各种办法,  包括JS/JS插件等 但大家都忽略了一个非常有历史却很好用,不存在 兼容问题的表格table...