我想做一个基本的控制台应用程序,创建一个新的Word文档,添加文本,然后保存到文件中。起初我试图使用Docx nuget包,但我在某处读到它可能不再是免费的了。当我尝试使用那个包时,当我试图从头开始创建一个新的Docx文件时,我得到了一个文件未找到的错误,当我尝试使用下面的代码时,我仍然得到同样的错误。Microsoft.Office.Interop.Word
也是。我找到的每个在线解决方案都会返回相同的错误,所以我不确定我的问题是否在于我的引用或可能是一般的文件访问。先谢谢你的帮助。
错误:System.IO.FileNotFound
System.IO.FileNotFoundException: '无法加载文件或汇编'office,Version=15.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c'。系统找不到指定的文件'。
static void Main(string[] args)
{
Word.Application app = new Word.Application();
Word.Document doc = app.Documents.Add();
Word.Paragraph newParagraph;
newParagraph = doc.Paragraphs.Add();
newParagraph.Range.Text = "Document Creation Successful";
doc.SaveAs2("test.docx");
doc.Close();
app.Quit();
}
项目文件。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Document_Generation</RootNamespace>
</PropertyGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Word.dll">
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="DocX" Version="1.6.0" />
</ItemGroup>
</Project>
你必须在项目引用中添加两个Office互操作文件。
Office.dll
库。这是一个提供共享功能的Microsoft Office对象库。Microsoft.Office.Word.dll
库。<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<RootNamespace>Document_Generation</RootNamespace>
</PropertyGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Word.dll">
<Guid>00020905-0000-0000-c000-000000000046</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>7</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
<COMReference Include="office.dll">
<Guid>2DF8D04C-5BFA-101B-BDE5-00AA0044DE52</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<WrapperTool>tlbimp</WrapperTool>
<Lcid>0</Lcid>
<Isolated>false</Isolated>
</COMReference>
</ItemGroup>
</Project>
作为一个例子,你可以尝试创建一个基于.Net框架的控制台应用程序示例,并尝试向Word添加一个COM引用。然后你可以观察到添加的所需引用(在这里你也可以抓取所需的interop文件)。
你可以阅读更多关于Office Interop程序集的内容。办事处的主要交互式组件 页面。
如果你是在Visual Studio中做的(我建议你这样做),我会做这样的事情(改变目录和文本,无论你喜欢什么)。
File.Create("C:/test.docx").Dispose();
File.AppendAllText("D:/test.docx", "test text");