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

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.dtcms.com/a/357060.html

相关文章:

  • Apache服务器IP 自动跳转域名教程​
  • 前端网页源码模板 静态HTML源码网站
  • Dubbo 接口调用中使用 CompletableFuture 实现回调模式 非阻塞异步模式
  • SQL-Server分页查询多种方法讲解以及分页存储过程
  • 如何制作手感良好的移动算法?
  • 自动驾驶感知范式迁移:从BEV/向量化到高斯建模
  • Vue中的事件修饰符
  • uni-app 常用钩子函数:从场景到实战,掌握开发核心
  • MySQL 深分页:性能优化
  • 每周AI看 | 微软开源VibeVoice-1.5B、OpenAI历史性交棒、网易云商出席AICon全球人工智能开发与应用大会
  • MCP Java Sdk 添加key认证
  • CMake构建学习笔记22-libxml2库的构建
  • 【链表 - LeetCode】146. LRU 缓存
  • Prometheus+Grafana入门教程:从零搭建云原生服务器监控系统
  • 如何管理跨境电商多语种素材?数字资产本地化指南
  • nacos单机部署并开启鉴权
  • #医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(五)
  • 机器学习 - Kaggle项目实践(5)Quora Question Pairs 文本相似
  • OpenCV轮廓近似与Python命令行参数解析
  • 玳瑁的嵌入式日记D29-0829(进程间通信)
  • ZooKeeper 安装配置
  • idea2025.2中maven编译中文乱码
  • Altium Designer 22使用笔记(10)---PCB铺铜相关操作
  • c++ const 关键字
  • 聊聊Prompt Engineering (提示词工程)
  • 【工具类】得到多个数组中的相同元素
  • 考研数据结构Part3——二叉树知识点总结
  • Vue学习Ⅳ
  • 二手车估值查询-二手车估值api接口
  • el-table实现双击编辑-el-select选择框+输入框限制非负两位小数