C#关于word文档的书签替换操作
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文档的书签替换操作的更多相关文章
- C# 中使用Word文档对图像进行操作
C# 中使用Word文档对图像进行操作 Download Files: ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操 ...
- 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 ...
- word文档常用的格式操作(分页、分节、每一节如何设置页码、以及生成目录)
分页: 分节: 自动生成目录:
- C# Word文档中插入、提取图片,文字替换图片
Download Files:ImageOperationsInWord.zip 简介 在这篇文章中我们可以学到在C#程序中使用一个Word文档对图像的各种操作.图像会比阅读文字更有吸引力,而且图像是 ...
- POI生成word文档完整案例及讲解
一,网上的API讲解 其实POI的生成Word文档的规则就是先把获取到的数据转成xml格式的数据,然后通过xpath解析表单式的应用取值,判断等等,然后在把取到的值放到word文档中,最后在输出来. ...
- django admin 中实现word文档下载
为了实现此功能,需要用到的知识点: (1)django admin 自定义字段: 参考:http://www.cnblogs.com/wumingxiaoyao/p/6928297.html ...
- [办公应用]我的WORD文档表格操作不灵活 无法调整列宽
最近同事的一个word文档中的表格操作非常不灵活,用鼠标直接调整列宽时总觉得很不灵活.她的操作系统为XP,office 为微软office 2003. 我首先检查了木马,检查了输入法等,结果都没有问题 ...
- 利用POI操作不同版本号word文档中的图片以及创建word文档
我们都知道要想利用java对office操作最经常使用的技术就应该是POI了,在这里本人就不多说到底POI是什么和怎么用了. 先说本人遇到的问题,不同于利用POI去向word文档以及excel文档去写 ...
- Word文档数据被误删了怎么办,还能恢复吗
很多时候由于时间紧张或者是思路不想被打断,我们在编辑Word时不能及时的手动保存,一旦遇到电脑意外断电的情况可能就会导致编辑好的Word文档内容丢失.或者是文档编辑好了之后,Word提示是否保存时,误 ...
随机推荐
- UTL_FILE
在PL/SQL中,UTL_FILE包提供文本文件输入和输出功能. 可以访问的目录通过初始化参数UTL_FILE_DIR设置. 注意:UTL_FILE只能读取服务器端文本文件,不能读取二进制文件.这时候 ...
- bootstrap-datetimepicker.js学习
之前项目运用到了这个时间控件,期间bug还是一些.抽个时间,简单地看一下. 先看一下datetimepicker.js的结构 var DateTimePicker = function(element ...
- 什么是WeakHashMap--转
原文地址:http://laravel.iteye.com/blog/2303244 Java WeakHashMap 到底Weak在哪里,它真的很弱吗?WeakHashMap 的适用场景是什么,使用 ...
- 一道 google曾出过的笔试题:编程实现对数学一元多项式的相加和相乘操作(1)
数学中一元n次多项式可表示成如下的形式: Pn(x)=p0+p1x+p2x^2+…+pnx^n (最多有 n+1 项,n +1 个系数唯一确定她) (1)请设计一套接口用以表示和操 ...
- [转载]"百度方法+"案例—从持续集成到持续交付
前言 百度开放云(https://bce.baidu.com)是百度基于十五年基础架构核心技术积累推出的云服务,目前推出了14个云计算产品和9个大数据产品,并提供数字营销云.在线教育.物联网等10种解 ...
- Pure – 赞!轻量的、响应式的 CSS 模块集
Pure 是一组轻量的,响应式的 CSS 模块,您可以使用在任何的 Web 项目中.充分考虑了移动设备中的使用,保持文件体积尽量小,每行 CSS 都进行了仔细的考虑. Pure 基于 Normaliz ...
- Windows Azure Virtual Machine (32) 如何在Windows操作系统配置SFTP
<Windows Azure Platform 系列文章目录> 下载地址:http://files.cnblogs.com/files/threestone/Windows_SFTP.pd ...
- Web API应用架构在Winform混合框架中的应用(5)--系统级别字典和公司级别字典并存的处理方式
在我这个系列中,我主要以我正在开发的云会员管理系统为例进行介绍Web API的应用,由于云会员的数据设计是支持多个商家公司,而每个公司又可以包含多个店铺的,因此一些字典型的数据需要考虑这方面的不同.如 ...
- .net微信公众号开发——消息与事件
作者:王先荣 本文介绍如何处理微信公众号开发中的消息与事件,包括:(1)消息(事件)概况:(2)验证消息的真实性:(3)解析消息:(4)被动回复消息:(5)发送其他消息. 开源项目地址:h ...
- Bootstrap学习笔记系列1-------Bootstrap网格系统
Bootstrap网格系统 学习笔记 [TOC] 简单网格 先上代码再解释 <!DOCTYPE html> <html> <head> <title>B ...