C# 使用现有word.doc和.net core查找并替换
我正在尝试查找并替换我创建并添加到.net核心项目中的word文档模板中的特定单词/字符串 我目前正在使用NPOI来实现这一点,但我似乎无法理解,因为我的C#知识不是很好 理论上,我希望阅读现成的.docx模板,然后替换需要的内容,然后保存它 我已经尝试了我能想到的一切,但仍然不起作用 下面是留给我的代码:C# 使用现有word.doc和.net core查找并替换,c#,ms-word,filestream,C#,Ms Word,Filestream,我正在尝试查找并替换我创建并添加到.net核心项目中的word文档模板中的特定单词/字符串 我目前正在使用NPOI来实现这一点,但我似乎无法理解,因为我的C#知识不是很好 理论上,我希望阅读现成的.docx模板,然后替换需要的内容,然后保存它 我已经尝试了我能想到的一切,但仍然不起作用 下面是留给我的代码: var docUrl = @"App_Data/Document_Template.docx"; using (FileStream file = new FileStream(docUr
var docUrl = @"App_Data/Document_Template.docx";
using (FileStream file = new FileStream(docUrl, FileMode.Open, FileAccess.Read))
{
XWPFDocument doc = new XWPFDocument(file);
// get the document template using docUrl and replace string with another string.
doc.Write(file);
}
任何帮助都将是了不起的,因为我花了这么多时间研究和尝试实现这一点,只是没有任何运气 要替换MS word中的特定单词,首先应添加nuget中的以下引用:
Install-Package Microsoft.Office.Interop.Word
此示例代码用另一个字符串替换指定的字符串:
namespace MSWordReplacement
{
class Program
{
static void Main(string[] args)
{
Application app = new Application();
Document doc = app.Documents.Open(@"C:\Sample.docx");
// Assign a search string to a variable.
object findText = "Find me.";
// Clear formatting from previous searches.
app.Selection.Find.ClearFormatting();
if (app.Selection.Find.Execute(ref findText))
{
// Replace new text.
app.Selection.Text = "You found me!";
}
else
{
// Do somthing else.
}
doc.Close(true);
app.Quit();
}
}
}
作为警告,您应该知道此软件包正在工作,但它可能与dot net core不完全兼容
有关更多信息,请使用此链接:要替换MS word中的特定单词,首先应添加nuget中的以下参考:
Install-Package Microsoft.Office.Interop.Word
此示例代码用另一个字符串替换指定的字符串:
namespace MSWordReplacement
{
class Program
{
static void Main(string[] args)
{
Application app = new Application();
Document doc = app.Documents.Open(@"C:\Sample.docx");
// Assign a search string to a variable.
object findText = "Find me.";
// Clear formatting from previous searches.
app.Selection.Find.ClearFormatting();
if (app.Selection.Find.Execute(ref findText))
{
// Replace new text.
app.Selection.Text = "You found me!";
}
else
{
// Do somthing else.
}
doc.Close(true);
app.Quit();
}
}
}
作为警告,您应该知道此软件包正在工作,但它可能与dot net core不完全兼容
有关更多信息,请使用此链接:使用文件流永远不会起作用,因为它不知道底层文件类型。您可能想了解Word Interop。使用Microsoft.Office.Interop.Word程序集,您可以从文档中获取内容和格式。您知道使用Word Interop执行此操作的任何示例吗?只需使用Google…:)
。docx
可以像zip文件一样提取。它包含一组可由标准C#库解析的.xml
文件。在进行所需的更新后,您应该能够将其压缩回.docx
文件。Opemxmlpowertools可以帮助您使用filestream,因为它不知道底层文件类型,所以永远不会工作。您可能想了解Word Interop。使用Microsoft.Office.Interop.Word程序集,您可以从文档中获取内容和格式。您知道使用Word Interop执行此操作的任何示例吗?只需使用Google…:)。docx
可以像zip文件一样提取。它包含一组可由标准C#库解析的.xml
文件。在进行所需的更新后,您应该能够将其压缩回.docx
文件。Opemxmlpowertools可以帮助您感谢Sajad。这是有效的,所以我认为这是正确的答案。我做了一些研究,想知道使用DocX是否会更好?你知道DocX吗?如果知道的话,这对我来说是不是一个更好的选择?这种叫做“wordautomation”的用法,你可以在web上找到很多文档来了解它的工作原理。通常,您可以在Word自动化中实现MS Word的大部分功能。因此,如果您对C#不是很精通,请选择可以在整个web上找到更多文档的软件包。谢谢Sajad。这是有效的,所以我认为这是正确的答案。我做了一些研究,想知道使用DocX是否会更好?你知道DocX吗?如果知道的话,这对我来说是不是一个更好的选择?这种叫做“wordautomation”的用法,你可以在web上找到很多文档来了解它的工作原理。通常,您可以在Word自动化中实现MS Word的大部分功能。因此,如果您对C#不是很精通,请选择可以在整个web上找到更多文档的软件包。