我们使用Word Interop从.Net操作Word 2007文档.主要用以下字段做事:
For Each f In d.Fields
f.Select()
//do stuff with fields here
Next
Run Code Online (Sandbox Code Playgroud)
这将选择文档中的最后一个字段.
因此,为了整洁,我们希望将光标定位在文档的末尾(甚至开始就可以).
谷歌搜索答案并没有太多...我最近得到的似乎是建议我们需要让自己参与范围或书签.有一个对象的GoTo方法,Document但WdGoToItem它提供的选项都没有用.
是不是有一种简单的方法可以将光标发送到文档的结尾(或开头)?
编辑
我的部分问题是我不喜欢选择最后一个字段.现在已经意识到我能做到
f.Unlink
Run Code Online (Sandbox Code Playgroud)
删除mergefield,只是将字段文本保留为纯文本.哪个更整洁,我们是否也重新定位光标
我一直在尝试创建一个库来替换Word 2003文档中的MergeFields,一切正常,但是当我替换它时,我失去了应用于该字段的样式,有没有办法保留它?
这是我用来替换字段的代码:
private void FillFields2003(string template, Dictionary<string, string> values)
{
object missing = Missing.Value;
var application = new ApplicationClass();
var document = new Microsoft.Office.Interop.Word.Document();
try
{
// Open the file
foreach (Field mergeField in document.Fields)
{
if (mergeField.Type == WdFieldType.wdFieldMergeField)
{
string fieldText = mergeField.Code.Text;
string fieldName = Extensions.GetFieldName(fieldText);
if (values.ContainsKey(fieldName))
{
mergeField.Select();
application.Selection.TypeText(values[fieldName]);
}
}
}
document.Save();
}
finally
{
// Release resources
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试在选择中使用CopyFormat和PasteFormat方法,也使用get_style和set_style但不使用exent.
我希望创建一个公式并应用于 Word 2013 中的合并字段。我无法访问数据库,并且只提供了合并字段。我的目标是截断/缩短某些合并字段。例如,全名到首字母,年龄 [27 岁] 到短年龄 [27]。
Access 和 excel 有我尝试使用但没有成功的公式“左”。数字的可用选项似乎较少。
{=left({ MERGEFIELD First_Name },1)}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致语法错误。是否有适用于合并字段的公式列表?
结果
'史蒂文' -> 'S'
'27 年' -> '27'
https://SURU.tinytake.com/sf/MTQxMTgzOV81MDc2MDI2
我想在页面底部粘贴一些文本,就像在屏幕上一样,总是在页脚之前。当有文本(来自合并字段)时,接下来应该是新行。我希望截图能让大家更容易看到。