当前位置: 首页 > ops >正文

VisualStudio 将xlsx文件嵌入到资源中访问时变String?

如题,就是这么诡异,时至如今已经是visual studio 2022了,你通过界面导入xlsx文件到资源中,它的类型就是String而且没法修改! 即使将文件压缩成zip再导入,依然是String! 三哥的骚操作问你服不服!

然而,经过各种尝试后,找到一个迂回的实现方法:

  1. 在右侧的解决方案中你的项目右键,添加->新建文件夹,名字为data
  2. 将你的excel文件拖到data中
  3. 选中这个文件然后呼出属性,里面有一项"生成操作"(Build Action), 设置为嵌入的资源(或Embedded Resource)
  4. 用代码访问这个资源,我把它写成一个通用方法:
/// <summary>
/// 获取资源 
/// </summary>
/// <param name="assembly"> Assembly assembly = Assembly.GetExecutingAssembly(); </param>
/// <param name="namespace_"></param>
/// <param name="resourcename"></param>
/// <returns></returns>
protected byte[] getResource(Assembly assembly,string resourcename)
{// 获取当前程序集string[] resourceNames = assembly.GetManifestResourceNames();// 构造资源的完整名称。格式通常是:默认命名空间.文件夹名.文件名         // 获取资源流using (Stream stream = assembly.GetManifestResourceStream(resourcename)){if (stream != null){// 现在你可以像处理任何流一样来处理这个文件,比如读取到 byte[]byte[] buffer = new byte[stream.Length];stream.Read(buffer, 0, buffer.Length);return buffer;// buffer 现在包含了文件的二进制数据// 你可以对它进行任何操作,比如保存到本地文件// File.WriteAllBytes("path/to/save/file.bin", buffer);}return null;}
}

如何调用:

 byte[] bytes = getResource(Assembly.GetExecutingAssembly(), "你的命名空间.data.你的文件.xlsx");
File.WriteAllBytes(savedlg.FileName, bytes);

再次吐槽三哥,你们把微软捣鼓得充满咖喱味。

http://www.xdnf.cn/news/19044.html

相关文章:

  • HTML 和 JavaScript 关联的基础教程
  • LeetCode 刷题【56. 合并区间】
  • Linux - 中文显示乱码问题解决方法(编码查看及转换)- 学习/实践
  • 【Spring Cloud微服务】6.通信的利刃:深入浅出 Spring Cloud Feign 实战与原理
  • 智能体开发:学习与实验 ReAct
  • web端播放flv视频流demo(flv.js的使用)
  • API 月度更新汇总:ONLYOFFICE 协作空间文档
  • 【RAG Agent实战】告别“单线程”RAG:用查询理解与LangGraph构建能处理复杂意图的高级代理
  • WPF+IOC学习记录
  • 学习Java30天(tcp的多开客户端和bs架构以及java高级)
  • 群核科技--SpatialGen
  • 毕马威 —— 公众对人工智能的信任、态度及使用情况调查
  • OpenHarmony设备使用统计深度实战:从数据埋点到信息采集的全链路方案
  • matlab利用模糊算法控制PID参数实现模糊控制
  • echo、seq、{}、date、bc命令
  • Shell 秘典(卷二)——号令延展秘术 与 流程掌控心法・if 天机判语篇精解
  • SpringMvc下
  • log4jshell CVE-2021-44228 复现
  • 智能标签分类:新一代任务管理工具的进化方向
  • LangChain如何使用通义千问的向量模型
  • 【C语言入门级教学】sizeof和strlen的对⽐
  • Java使用apache.commons.math3的DBSCAN实现自动聚类
  • HTML 核心标签全解析:从文本排版到媒体嵌入
  • vue3中安装tailwindcss
  • C++函数继承
  • docker 搭建zookper集群,快照虚拟机多机模拟
  • 园区智慧水电管理系统:让能源管理从“成本黑洞”变“利润引擎”
  • 【实时Linux实战系列】实时数据可视化技术实现
  • 【机器学习】 12 Latent linear models
  • 【拍摄学习记录】03-曝光