操作word文档 添加一个table (书签方式)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作word文档 添加一个table (书签方式)相关的知识,希望对你有一定的参考价值。

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 + "‘}");
            }
        }
    }
}

以上是关于操作word文档 添加一个table (书签方式)的主要内容,如果未能解决你的问题,请参考以下文章

使用 POI 读取 Word docx 中的书签替换书签内容(汉字或合并外部文档内容)

Java 操作Word书签:添加文本图片表格到书签内容

C#导出数据—使用Word模板

Word批量删除所有书签

PDF文件如何自动生成目录书签

PPT模板中的”书签”