gpt4 book ai didi

c# - 将 Excel 模板保存为 C# Visual Studio 资源的一部分

转载 作者:行者123 更新时间:2023-12-04 20:10:36 26 4
gpt4 key购买 nike

我正在开发我的第一个 C# 项目,其目标是读取配置文件,将读取的数据保存在现有的 excel 模板中,然后将 excel 文件的副本保存在所需的位置。

解析部分已成功创建,我也知道如何使用实际现有的 excel 模板完成此任务,只要我知道它的位置。但我试图克服必须将 excel 模板保留为目录的一部分的问题,我的目标是将 excel 文件作为我最终可执行文件的一部分。

我已经阅读了与我类似的其他问题,但我认为我只是没有足够的经验来理解我真正需要做什么。

我有什么:

using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
Excel excel = new Excel(startupPath + @"\template_hm_mach10x.xlsx", 1);

这就是我创建我将使用的 excel 实例的方式,它是我放置在/debug 文件夹中的现有模板,因此我可以在我的原型(prototype)中使用它。

然后我使用更改模板
 ws = wb.Worksheets[d.Ws];
wb.Worksheets[d.Ws].Select();
ws.Cells[d.Row, d.Col].Value2 = d.Data;

然后使用 excel.SaveAs(saveFileDialog.FileName.ToString());
保存文件

我尝试过的

我已经尝试通过执行以下操作将模板添加到我的解决方案中:

右键单击我的解决方案>添加..>现有项目>选择该项目

在那里我试图寻找文件的汇编选项,但我在属性中找不到它们:

Screenshot of all the available File Properties

我也尝试将它添加到项目中,它给了我“复制到输出”的选项,但我不知道这对我有什么帮助,或者它有什么作用。

我研究过的

我读过有人将模板保存为某种二进制字符串,然后生成文件并将其保存在计算机上,这对我来说是一个很好的解决方案,但从未使用过这个我只是不知道它是如何应该实现。我认为这将是最好的解决方案,因为最终用户将无法再访问模板文件,而学习如何做到这一点对我来说非常有趣。

但是,如果这不能解决我的问题,那么我很乐意学习如何使模板文件成为程序的一部分并能够使用它的相对路径。

谢谢大家的帮助 !
我以前尝试过问这个问题,但这是我在这个网站上的第一个问题,我认为我只是没有很好地准确地提出我的问题。

如果我的代码或 IDE 的任何部分需要更多信息,我很乐意编辑它。

最佳答案

我的答案

我真的让它工作了!
我会在这里回复,以便遇到类似问题的任何人都可以受益

我学会了如何将文件实现为嵌入资源,这就是:

右键单击您的项目 > 属性 > 资源

通过单击“添加资源”>“添加现有文件”添加文件

该文件现在将显示在资源下的项目结构中。

打开文件的属性并选择构建操作“嵌入式资源”

嵌入的文件将保存在临时位置的临时文件中,并从那里打开以进行编辑和保存。临时文件将通过将资源流转换为字节数组来填充,然后将其写入文件中。

string templatefile = System.IO.Path.GetTempFileName();
MemoryStream ms = new MemoryStream();
_assembly.GetManifestResourceStream("SwitchConfigReader.Resources.template_hm_mach10x.xlsx").CopyTo(ms);
Byte[] bArray = ms.ToArray();
System.IO.File.WriteAllBytes(templatefile, bArray);
Excel excel = new Excel(templatefile, 1);

然后可以编辑和保存文件

excel.SaveAs("path_and_name_of_Excel_Doc.xlsx");

这只是我现在对这个问题的解决方案,而且我对编程还很陌生,所以把它当作它的值(value)。

我希望我今天帮助了某人。

关于c# - 将 Excel 模板保存为 C# Visual Studio 资源的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49914627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com