我们使用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
我想在页面底部粘贴一些文本,就像在屏幕上一样,总是在页脚之前。当有文本(来自合并字段)时,接下来应该是新行。我希望截图能让大家更容易看到。