public void Get_Word(string gjbh)
{
try
{
DataSet ds = OperaterBase.GetDsBySql("select diffTableName from public_Data where gjbh='" + gjbh + "'");
string mode_bh = ds.Tables[0].Rows[0]["diffTableName"].ToString();
//模板word路径
string source = HttpContext.Current.Server.MapPath("../WorkData/Model_doc/") + mode_bh + ".doc";

//根据估价编号生成的Word路径
string destination = HttpContext.Current.Server.MapPath("../WorkData/Pgbg_Doc/") + gjbh + ".doc";

//拷贝内容

Doc_mbtowsPage_copy(source, destination);

Object oMissing = System.Reflection.Missing.Value;
WordApp = new Microsoft.Office.Interop.Word.Application();
WordApp.Visible = false;
object filename = HttpContext.Current.Server.MapPath("../WorkData/Pgbg_Doc/") + gjbh + ".doc";

WordDoc = WordApp.Documents.Open(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);
WordDoc.Activate();

object Bookmark = (int)Microsoft.Office.Interop.Word.WdGoToItem.wdGoToBookmark;
object BreakType = Microsoft.Office.Interop.Word.WdBreakType.wdSectionBreakNextPage;
object confirmConversion = false;
object link = false;
object attachment = false;
object NameBookMark = "";

System.Collections.IEnumerator enu = WordDoc.Bookmarks.GetEnumerator();
//加载数据

string dft_val_sql = sql;//从数据库得到要替换内容的sql语句

System.Data.DataTable dt1 = dataopr.data_get_with_datareader(dft_val_sql);
string b = "";
int n = 0;

//查找书签替换
while (enu.MoveNext())
{
str = ((Microsoft.Office.Interop.Word.Bookmark)enu.Current).Name;
b += "," + str;
n++;
Microsoft.Office.Interop.Word.Range r;
word_sq_name = str.Split('_')[0];
r = WordDoc.Bookmarks.get_Item(str).Range;//得到书签的位置
if (dt.Columns.Contains(word_sq_name) || word_sq_name == "c")
{
//区位图
switch (word_sq_name)
{
case "cjrq":
if (str == "cjrq_uc")
{//大写替换
r.Text = data_convert.numToCnum_transfer(data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString(), "1"));
WordDoc.Bookmarks.Add(str, r);
}
else
{
r.Text = data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString(), "0");
WordDoc.Bookmarks.Add(str, r);
}
break;
case "pgjzdx"://pgjzdx_uc_2

if (str.Split('_')[1] == "uc")
{//大写替换ConvertSum
r.Text = data_convert.ConvertSum(dt.Rows[0]["pgjzxx"].ToString());
WordDoc.Bookmarks.Add(str, r);
}
else
{
r.Text = dt.Rows[0]["pgjzxx"].ToString();
WordDoc.Bookmarks.Add(str, r);
}
break;
case "sczktz":
string jzsd1 = dt.Rows[0]["jzsd1"].ToString();
jzsd1 = jzsd1.Replace("-", "");//.Replace("月", "-").Replace("日", "-");
//jzsd=DateTime.ParseExact(dt.Rows[0]["jzsd"].ToString(), "yyyyMMdd", null).ToString();
jzsd1 = jzsd1.Substring(0, jzsd1.Length - 2);
string Insert_filename1 = HttpContext.Current.Server.MapPath("../WorkData/AdditionalSysMaintenance_doc/sczktz_" + jzsd1 + ".doc");
//E:\zhpg\WorkData\AdditionalSysMaintenance_doc\scbjfx_201607.doc
NameBookMark = str;

if (File.Exists(Insert_filename1))
{
WordApp.Selection.GoTo(ref Bookmark, ref oMissing, ref oMissing, ref NameBookMark);
WordApp.Selection.InsertFile(Insert_filename1, ref oMissing, ref confirmConversion, ref link, ref attachment);
//清除空行
//WordApp.Selection.TypeBackspace();
}

break;
case "scbjfx":
string jzsd = dt.Rows[0]["jzsd1"].ToString();
jzsd = jzsd.Replace("-", "");//.Replace("月", "-").Replace("日", "-");
//jzsd=DateTime.ParseExact(dt.Rows[0]["jzsd"].ToString(), "yyyyMMdd", null).ToString();
jzsd = jzsd.Substring(0, jzsd.Length - 2);
string Insert_filename = HttpContext.Current.Server.MapPath("../WorkData/AdditionalSysMaintenance_doc/scbjfx_" + jzsd + ".doc");//E:\zhpg\WorkData\AdditionalSysMaintenance_doc\scbjfx_201607.doc
NameBookMark = str;

if (File.Exists(Insert_filename))
{
WordApp.Selection.GoTo(ref Bookmark, ref oMissing, ref oMissing, ref NameBookMark);
WordApp.Selection.InsertFile(Insert_filename, ref oMissing, ref confirmConversion, ref link, ref attachment);
//清除空行
//WordApp.Selection.TypeBackspace();
}
break;
case "szlc":
if (str.Split('_').Length > 1)
{
if (str.Split('_')[1] == "uc")
{
r.Text = data_convert.NumToCnum(dt.Rows[0][word_sq_name].ToString());
WordDoc.Bookmarks.Add(str, r);
}
else
{
r.Text = dt.Rows[0][word_sq_name].ToString();
WordDoc.Bookmarks.Add(str, r);
}
}
else
{
r.Text = dt.Rows[0][word_sq_name].ToString();
WordDoc.Bookmarks.Add(str, r);
}

break;
case "zlc":
if (str.Split('_').Length > 1)
{
if (str.Split('_')[1] == "uc")
{
r.Text = data_convert.NumToCnum(dt.Rows[0][word_sq_name].ToString());
WordDoc.Bookmarks.Add(str, r);
}
else
{
r.Text = dt.Rows[0][word_sq_name].ToString();
WordDoc.Bookmarks.Add(str, r);
}
}
else
{
r.Text = dt.Rows[0][word_sq_name].ToString();
WordDoc.Bookmarks.Add(str, r);
}
break;
case "zzrq":

r.Text = data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString(), "0");
WordDoc.Bookmarks.Add(str, r);
break;

//case "gjzyrq"://没有
// {
// r.Text = data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString());
// WordDoc.Bookmarks.Add(str, r);
// break;
// }
case "startTime":
r.Text = data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString(), "0");
WordDoc.Bookmarks.Add(str, r);
break;
case "endTime":
r.Text = data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString(), "0");
WordDoc.Bookmarks.Add(str, r);
break;
case "sdkcrq":
r.Text = data_convert.Y_M_D_transfer(dt.Rows[0][word_sq_name].ToString(), "0");
WordDoc.Bookmarks.Add(str, r);
break;
case "fwcb":
if (dt.Rows[0][word_sq_name].ToString() == "")
{
WordDoc.Bookmarks.get_Item(str).Range.Rows.Delete();
WordDoc.Bookmarks.Add(str, r);
}
else
{
r.Text = dt.Rows[0][word_sq_name].ToString();
WordDoc.Bookmarks.Add(str, r);
}
break;
case "fwxz":
if (dt.Rows[0][word_sq_name].ToString() == "" && dt.Rows[0]["gyqk"].ToString() == "")
{
WordDoc.Bookmarks.get_Item(str).Range.Rows.Delete();
WordDoc.Bookmarks.Add(str, r);
}
else
{
r.Text = dt.Rows[0][word_sq_name].ToString();
WordDoc.Bookmarks.Add(str, r);
}
break;
case "fwsyqname":
string qyqk = dt.Rows[0]["gyqk"].ToString();
string fwxz = dt.Rows[0]["fwxz"].ToString();
string fwcb = dt.Rows[0]["fwcb"].ToString();
if (fwcb == "")
{
r.Text = "房屋所有权人";
}
else
{
r.Text = "房屋共有权人";
}
WordDoc.Bookmarks.Add(str, r);

break;
case "fwsyqzhame":
string qyqk1 = dt.Rows[0]["gyqk"].ToString();
string fwxz1 = dt.Rows[0]["fwxz"].ToString();
string fwcb1 = dt.Rows[0]["fwcb"].ToString();
if (fwcb1 == "")
{
r.Text = "房屋所有权证号";
}
else
{
r.Text = "房屋共有权证号";
}
WordDoc.Bookmarks.Add(str, r);
break;
case "qwt":
if (File.Exists(HttpContext.Current.Server.MapPath("../WorkData/res_qwt/" + gjbh + ".jpg")))//+ dt.Rows[0][str].ToString()
{
WordDoc.Bookmarks.get_Item(str).Select();
WordApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
//在书签的位置添加图片
InlineShape inlineShape = WordApp.Selection.InlineShapes.AddPicture(HttpContext.Current.Server.MapPath("../WorkData/res_qwt/" + gjbh + ".jpg"), true, true, ref oMissing);
WordDoc.Bookmarks.Add(str, inlineShape.Range);
}
else
{//区位图不存在
r = WordDoc.Bookmarks.get_Item(str).Range;
r.Text = "";
WordDoc.Bookmarks.Add(str, r);
}

enu.MoveNext();
}
create_directory();
WordDoc.Save();
}

finally {
WordDoc.Close();
WordApp.Quit();
}
}
public void Doc_mbtowsPage_copy(string source, string destination)
{
System.IO.FileInfo file_s = new System.IO.FileInfo(source);
System.IO.FileInfo file_d = new System.IO.FileInfo(destination);
file_s.CopyTo(destination, true);
}

C#关于word文档的书签替换操作的更多相关文章

  1. C# 中使用Word文档对图像进行操作

    C# 中使用Word文档对图像进行操作 Download Files: ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操 ...

  2. java和javascript获取word文档的书签位置对比

    1.javascript:把IE浏览器的activex都打开,使用如下网页,可以看到书签顺序和位置: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  3. word文档常用的格式操作(分页、分节、每一节如何设置页码、以及生成目录)

    分页: 分节: 自动生成目录:

  4. C# Word文档中插入、提取图片,文字替换图片

    Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...

  5. POI生成word文档完整案例及讲解

    一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...

  6. django admin 中实现word文档下载

    为了实现此功能,需要用到的知识点: (1)django  admin  自定义字段:   参考:http://www.cnblogs.com/wumingxiaoyao/p/6928297.html ...

  7. [办公应用]我的WORD文档表格操作不灵活 无法调整列宽

    最近同事的一个word文档中的表格操作非常不灵活,用鼠标直接调整列宽时总觉得很不灵活.她的操作系统为XP,office 为微软office 2003. 我首先检查了木马,检查了输入法等,结果都没有问题 ...

  8. 利用POI操作不同版本号word文档中的图片以及创建word文档

    我们都知道要想利用java对office操作最经常使用的技术就应该是POI了,在这里本人就不多说到底POI是什么和怎么用了. 先说本人遇到的问题,不同于利用POI去向word文档以及excel文档去写 ...

  9. Word文档数据被误删了怎么办,还能恢复吗

    很多时候由于时间紧张或者是思路不想被打断,我们在编辑Word时不能及时的手动保存,一旦遇到电脑意外断电的情况可能就会导致编辑好的Word文档内容丢失.或者是文档编辑好了之后,Word提示是否保存时,误 ...

随机推荐

  1. 【Java基础】类和接口

    Num1:使类和成员的可访问性最小化 要区别设计良好的模块与设计不好的模块,最重要的因素在于,这个模块对于外部的其他模块而言,是否隐藏其内部数据和其他实现细节.设计良好的模块会隐藏所有的实现细节,把它 ...

  2. 坑人的微信新版支付(V3.3.6)

         现在微支付的需求越来越多,最近刚接到一个需要微支付的项目,于是身为程序猿的我拿到最新的微信支付接口文档(3.3.6)就开始研究微信支付.本以为应该跟支付宝差不多的感觉结果被坑了.恕在下无能, ...

  3. mysql判断一条记录是否存在,如果存在,则更新此语句,如果不存在,则插入

    前言,在我们的业务逻辑中,很有可能会遇到这样的情况. 1.我要更新一条记录的值. 2.但是我不确定这条记录存不存在??? 3.那如果存在?我就更新,如果不存在,我就插入! 那么如果这样,一般情况下,我 ...

  4. Windows Azure HandBook (1) IaaS相关技术

    <Windows Azure Platform 系列文章目录> 1.Microsoft Azure底层是否由System Center和Hyper-V构成? Microsoft Azure ...

  5. node.js下when.js(Promises/A)的实践

    假设一个业务场景: 通过rss地址,获取rss并保存于文件,rss地址保存于文件中. 完成该场景的业务需要完成3个任务: 1.从文件中读取rss地址. 2.获取rss. 3.保存于文件. 最后将这三个 ...

  6. 用js解析经json序列化后的C#的DateTime类型数据

    格式化日期(网上到处是),把下面的代码添加到jQuery.js文件中 //格式化日期 Date.prototype.format = function(format) { /* * eg:format ...

  7. 一个疑难杂症 IIS URL区分大小写(FF的自动变换URL问题)?

    (II8 VS14 CTP3 Windows7 ASP.NET WEBFORM) 在我的印象里面,IIS的URL在一般情况下面是不分大小写的. 所以下面两个URL应该是一样的. http://loca ...

  8. c#如何采集需要登录的页面

    首先说明:代码片段是从网络获取,然后自己修改.我想好的东西应该拿来分享. 先说下原理:当我们采集页面的时候,如果被采集的网站需要登录才能采集.不管是基于Cookie还是基于Session,我们都会首先 ...

  9. PHP程序的常见漏洞攻击分析

    综述:PHP程序也不是固若金汤,随着PHP的广泛运用,一些黑客们也在无时不想找PHP的麻烦,通过PHP程序漏洞进行攻击就是其中一种.在节,我们将从全局变量,远程文件,文件上载,库文件,Session文 ...

  10. 基于吉日嘎底层架构的Web端权限管理操作演示-菜单模块管理

    按照顺序,这一篇介绍菜单模块管理,主要演示如下操作: 新增.修改.锁定.解锁.删除.撤销删除 排序 角色成员管理 用户成员管理 导出菜单模块数据 也许你会问,你在这自吹自擂,你这个BS的权限管理有啥缺 ...