首先需要把项目里面的文件设置为:嵌入的资源 ,鼠标右键属性里面设置,生成操作里面改为:嵌入的资源

csharp
/// <summary>
/// 下载导入模板文件
/// </summary>
/// <param name="obj"></param>
/// <exception cref="NotImplementedException"></exception>
private void OnDownTemplate(object obj)
{
try
{
//桌面路径
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
// 保存到桌面的文件完整路径
string saveFilePath = Path.Combine(desktopPath, $"职业病体检导入人员模板{DateTime.Now.ToString("yyyyMMdd")}.xlsx");
//模板文件
string templateName = "职业病体检导入模板.xlsx";
Assembly assembly = Assembly.GetExecutingAssembly();
// 返回所有可用资源
var resourceList = assembly.GetManifestResourceNames();
if (resourceList == null)
{
LogX.Tip("错误:没有可用资源");
return;
}
//找出模板文件资源名称
string resourceName = resourceList.FirstOrDefault(g => g.Contains(templateName));
if (string.IsNullOrWhiteSpace(resourceName))
{
LogX.Tip($"错误:没有找到模板文件:{templateName}");
return;
}
using (Stream resourceStream = assembly.GetManifestResourceStream(resourceName))
{
if (resourceStream == null)
{
LogX.Tip("未找到嵌入的Excel模板资源,请检查资源名称是否正确 ");
return;
}
// 将资源流写入桌面文件
using (FileStream fileStream = new FileStream(saveFilePath, FileMode.Create, FileAccess.Write))
{
resourceStream.CopyTo(fileStream);
}
//LogX.Tip($"模板文件已经存放到桌面,模板文件保存路径:"{saveFilePath}"");
MessageBox.Show($"模板文件已经存放到桌面,模板文件保存路径:"{saveFilePath}"");
}
}
catch (Exception ex)
{
var ex2 = ex.InnerException ?? ex;
LogX.Tip("发生未知错误:" + ex2.Message);
}
}