用于访问 DOCX 中作者姓名的 C# 代码在 GetXDocument 上返回错误。 '不包含 'GetXDocument' 的定义
C# code to access author name in DOCX returning error on GetXDocument. 'does not contain a definition for 'GetXDocument'
我正在尝试调试 C# 代码以访问 DOCX 文件中的 'author' 属性。下面的方法正在传递一个代表 DOCX 文件的变量 'savePath'。 VS 不喜欢 GetXDocument
和 returns 错误:
DocumentFormat.OpenXml.Packaging.MainDocumentPart
does not contain a
definition for GetXDocument
and no extension method GetXDocument
.
我做错了什么?
private void changeRevAuthor(string savePath)
{
List<string> result = new List<string>();
XNamespace w = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
WordprocessingDocument wordDocument = WordprocessingDocument.Open(savePath, false);
XDocument mainDocumentXDoc = wordDocument.MainDocumentPart.GetXDocument();
var nodes = mainDocumentXDoc.Descendants().Where(x => x.Attributes(w + "author").Count() > 0).ToList();
foreach (var node in nodes)
{
string authorname = node.Attribute(w + "author").Value;
if (!result.Contains(authorname))
result.Add(authorname);
}
wordDocument.Package.Close();
return result;
}
GetXDocument
是 OpenXML Powertools
库的一部分。 Nuget 并将其添加到您的解决方案中,您会很好。
从 nuget 添加 OpenXmlPowerTools
包后 - 导入以下命名空间
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using OpenXmlPowerTools;
这已通过首先添加 OpenXmlPowerTools 并在项目 >(项目名称)属性 > 应用程序下将项目的 Target NET Framework 版本更改为 4.5 第二次得到解决
谢谢!!
我正在尝试调试 C# 代码以访问 DOCX 文件中的 'author' 属性。下面的方法正在传递一个代表 DOCX 文件的变量 'savePath'。 VS 不喜欢 GetXDocument
和 returns 错误:
DocumentFormat.OpenXml.Packaging.MainDocumentPart
does not contain a definition forGetXDocument
and no extension methodGetXDocument
.
我做错了什么?
private void changeRevAuthor(string savePath)
{
List<string> result = new List<string>();
XNamespace w = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
WordprocessingDocument wordDocument = WordprocessingDocument.Open(savePath, false);
XDocument mainDocumentXDoc = wordDocument.MainDocumentPart.GetXDocument();
var nodes = mainDocumentXDoc.Descendants().Where(x => x.Attributes(w + "author").Count() > 0).ToList();
foreach (var node in nodes)
{
string authorname = node.Attribute(w + "author").Value;
if (!result.Contains(authorname))
result.Add(authorname);
}
wordDocument.Package.Close();
return result;
}
GetXDocument
是 OpenXML Powertools
库的一部分。 Nuget 并将其添加到您的解决方案中,您会很好。
从 nuget 添加 OpenXmlPowerTools
包后 - 导入以下命名空间
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using OpenXmlPowerTools;
这已通过首先添加 OpenXmlPowerTools 并在项目 >(项目名称)属性 > 应用程序下将项目的 Target NET Framework 版本更改为 4.5 第二次得到解决
谢谢!!