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

时间: 2024-10-11 21:50:04

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

C#操作Word文档(加密、解密、对应书签插入分页符)

原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己在MSDN上面的查找,后来总算把问题给解决掉啦.下面对C#操作Word文档(加密.解密.插入分页符)做一个简单的总结,希望对一些朋友有所帮忙吧.^_^ 写代码之前,需要引用对应的DLL文件: 1.Interop.Microsoft.Office.Interop.Word.dll  (网上可以下载)

c#操作Word文档

c#操作Word文档 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Word = Microsoft.Office.Interop.Word; using System.Reflection; using System.Text.RegularExpressions; using System.IO; namespace WebWord { public cla

向Docx4j生成的word文档添加图片和布局--第一部分

原文标题:Adding images and layout to your Docx4j-generated word documents, part 1 原文链接:http://blog.iprofs.nl/2012/10/22/adding-images-and-layout-to-your-docx4j-generated-word-documents-part-1/ 原文作者:lvdpal 发表日期:2012年10月22日 注:由于我对docx4j也不是很熟悉,所以很多专业名词不会翻译,

C#采用OpenXml给Word文档添加表格

本文实例讲述了C#采用OpenXml给Word文档添加表格的方法,是非常实用的操作技巧.分享给大家供大家参考.具体分析如下: 这里将展示如何使用Openxml向Word添加表格. 代码中表头和数据我们用的同一个TableRow来添加,其实可以通过TableHeader来,其实都一样.后面我们还会进一步给出如何设置单元格样式.表头那一行可以自己通过设置样式来控制 示例代码如下: using System; using System.Collections.Generic; using System

多人协作时编辑word文档的一个小窍门

多人协作时编辑word文档的一个小窍门 最近在工作中编写标书时由于不同内容分给了各个部门去制作,但是在汇总后遇到再次修改的问题.对方把修改后的部分文档发给我粘贴到标书中后,所有的格式全部都乱了.重新整理格式.标题,每次导入新的文档都重复这个工作,真是低效啊.事后想想word这么高级的文档编辑工具,肯定会有解决办法吧? 解决办法一 文档合并 将每个章节划分为多个文档,文档名称命名为章节编号,然后: 我们需要新建一个word文档并对这个文档的页面进行设置,使之与要合并的其他文档的页面设置保持一致,或

C#如何向word文档插入一个新段落及隐藏段落

向Word文档插入一个新段落的操作步骤 步骤1:新建一个文档并加载现有文档 Document document = new Document(); document.LoadFromFile(@"C:\Users\Administrator\Desktop\向日葵.docx", FileFormat.Docx); 步骤2:插入新段落并设置字体格式 Paragraph paraInserted = document.Sections[0].AddParagraph(); TextRang

C# 给Word文档添加内容控件

C# 给Word文档添加内容控件 在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word文档.下面就来看看如何使用C#给word文档添加组合框.文本.图片.日期选取器及下拉列表等内容控件(这里我借助了一个word组件Spire.Doc). 添加组合框内容控件 组合框用于显示用户可以选择的项目列表.和下拉列表不同的是组合框允许用户编辑或添加项. //给段落添加一个内容控件并指定它的SDT

OpenXml入门----给Word文档添加文字

使用OpenXml给word文档添加文字,每个模块都有自己对于的属性以及内容,要设置样式就先声明属性对象,将样式Append到属性里面,再将属性append到模块里面,那么模块里面的内容就具备该样式了.此方法默认是在文件后面追加内容 Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Docum

WinXP系统打开Word文档会弹出“打开方式”界面怎么办

WinXP系统打开Word文档会弹出"打开方式"界面怎么办 Word是微软公司开发的一个文字处理器应用程序,我们在日常办公中经常会使用到它.不过,最近有些XP系统用户反馈,电脑已经安装过Office,不过在打开Word文档时,总会弹出打"打开方式"界面,并提示选择你想用来打开此文件的程序,这该如何解决呢? 原因分析: 如果XP系统xitongcheng.com/xp/中安装过Office软件,而现在出现打开方式的界面,很有可能是文件关联出错了,或是你安装过别的Off