zoukankan
html css js c++ java
合并两个WORD文档,并且修改Word中标签的内容
因工作需要,需要对两个word 文档进行合并
Word.Application objApp
=
new
Word.ApplicationClass();
object
confirmConversion
=
false
;
object
link
=
false
;
object
attachment
=
false
;
object
objMissing
=
Missing.Value;
object
isVisible
=
true
;
object
objFalse
=
false
;
try
{
Word.Document objDoc
=
null
;
objDoc
=
objApp.Documents.Open(
ref
objOrgDoc,
//
FileName
ref
objMissing,
//
ConfirmVersions
ref
objMissing,
//
ReadOnly
ref
objMissing,
//
AddToRecentFiles
ref
objMissing,
//
PasswordDocument
ref
objMissing,
//
PasswordTemplate
ref
objMissing,
//
Revert
ref
objMissing,
//
WritePasswordDocument
ref
objMissing,
//
WritePasswordTemplate
ref
objMissing,
//
Format
ref
objMissing,
//
Enconding
ref
objMissing,
//
Visible
ref
objMissing,
//
OpenAndRepair
ref
objMissing,
//
DocumentDirection
ref
objMissing,
//
NoEncodingDialog
ref
objMissing
//
XMLTransform
);
if
(objDoc.Bookmarks.Exists((
string
)bm_ReceiveOrderNo))
ReplaceBookMark(objDoc, bm_ReceiveOrderNo, receiveOrderNo,
32
);
if
(objDoc.Bookmarks.Exists((
string
)bm_CertNo))
ReplaceBookMark(objDoc, bm_CertNo, certNo,
32
);
if
(objDoc.Bookmarks.Exists((
string
)bm_VerifiedUnit))
ReplaceBookMark(objDoc, bm_VerifiedUnit, verifiedUnit,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_Name))
ReplaceBookMark(objDoc, bm_Name, name,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_Specification))
ReplaceBookMark(objDoc, bm_Specification, specification,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_Rank))
ReplaceBookMark(objDoc, bm_Rank, rank,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_ProductionCode))
ReplaceBookMark(objDoc, bm_ProductionCode, productionCode,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_ProductionUnit))
ReplaceBookMark(objDoc, bm_ProductionUnit, producteUnit,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_ReasonBase))
ReplaceBookMark(objDoc, bm_ReasonBase, reasonBase,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_Conclusion))
ReplaceBookMark(objDoc, bm_Conclusion, conclusion,
55
);
if
(objDoc.Bookmarks.Exists((
string
)bm_VerifyDate))
objDoc.Bookmarks.get_Item(
ref
bm_VerifyDate).Range.Text
=
verifyDate;
if
(objDoc.Bookmarks.Exists((
string
)bm_ExpireDate))
objDoc.Bookmarks.get_Item(
ref
bm_ExpireDate).Range.Text
=
expireDate;
Range r
=
objDoc.Range(
ref
objMissing,
ref
objMissing);
object
direction
=
Word.WdCollapseDirection.wdCollapseEnd;
r.Collapse(
ref
direction);
object
objBreak
=
WdBreakType.wdSectionBreakNextPage;
r.InsertBreak(
ref
objBreak);
r.InsertFile(
this
.txtFilePath.Text,
ref
objMissing,
ref
confirmConversion,
ref
link,
ref
attachment);
object
objOutDoc
=
path;
objDoc.SaveAs(
ref
objOutDoc,
ref
objMissing,
//
FileFormat
ref
objMissing,
//
LockComments
ref
objMissing,
//
PassWord
ref
objMissing,
//
AddToRecentFiles
ref
objMissing,
//
WritePassword
ref
objMissing,
//
ReadOnlyRecommended
ref
objMissing,
//
EmbedTrueTypeFonts
ref
objMissing,
//
SaveNativePictureFormat
ref
objMissing,
//
SaveFormsData
ref
objMissing,
//
SaveAsAOCELetter,
ref
objMissing,
//
Encoding
ref
objMissing,
//
InsertLineBreaks
ref
objMissing,
//
AllowSubstitutions
ref
objMissing,
//
LineEnding
ref
objMissing
//
AddBiDiMarks
);
return
path;
}
finally
{
objApp.Quit(
ref
objFalse,
ref
objMissing,
ref
objMissing
);
objApp
=
null
;
}
private
void
ReplaceBookMark(Document doc,
object
bookmarkName,
string
text,
int
CharLength)
{
Range rng
=
doc.Bookmarks.get_Item(
ref
bookmarkName).Range;
rng.Text
=
text;
int
count
=
System.Text.Encoding.GetEncoding(
"
gb2312
"
).GetBytes(text).Length;
if
(CharLength
>
count)
{
int
startAddedSpaceCount
=
(CharLength
-
count)
/
2
;
int
endAddedSpaceCount
=
(CharLength
-
count)
/
2
+
(CharLength
-
count)
%
2
;
rng.InsertBefore(GetSpaceString(startAddedSpaceCount));
rng.InsertAfter(GetSpaceString(endAddedSpaceCount));
rng.Font.Underline
=
WdUnderline.wdUnderlineSingle;
}
}
private
string
GetSpaceString(
int
StringLength)
{
StringBuilder sb
=
new
StringBuilder();
for
(
int
i
=
0
;i
<
StringLength;i
++
)
{
sb.Append(
"
"
);
}
return
sb.ToString();
}
查看全文
相关阅读:
二叉查找树
Rust更换Crates源
Raft共识算法
Session
可以编写代码的代码:代码生成的利与弊
引用和自包含令牌(Reference Tokens and Introspection)
认证授权-学习笔记1-OAuth 2.0
spring security原理-学习笔记2-核心组件
spring security原理-学习笔记1-整体概览
零拷贝Zero copy-linux and java
原文地址:https://www.cnblogs.com/nosnowwolf/p/1170951.html
最新文章
《深入理解Java虚拟机》第2版挖的坑终于在第3版中被R大填平了
Dubbo Cluster集群那点你不知道的事。
【原创】《代码整洁之道》&《程序员的职业素养》
使用Java+MySQL+Apache开发后台项目(一)
谈谈程序猿求职简历的STAR法则
Android中使用databinding编译时出现的error:Execution failed for task ':app:dataBindingProcessLayoutsDebug'
2017年从新开始
Error: Your project contains C++ files but it is not using a supported native build system
说说Android6.0动态申请权限的那些坑
Sublime text3中配置Github
热门文章
使用LogPhoneUtil工具类在Android手机保存APP运行日志
Fragment分解使用
自定义控件添加自定义属性问题
STL关联容器
STL常用序列容器
C++拷贝构造函数被调用的时机
自旋锁
Protocol Buffers工作原理
Rust中的RefCell和内部可变性
二叉查找树的平衡(DSW算法)
Copyright © 2011-2022 走看看