您现在的位置是:首页 >技术杂谈 >【C#】本地下载附件(Excel模板)网站首页技术杂谈

【C#】本地下载附件(Excel模板)

花北城 2024-06-17 10:13:16
简介【C#】本地下载附件(Excel模板)

系列文章

【C#】单号生成器(编号规则、固定字符、流水号、产生业务单号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

【C#】日期范围生成器(开始日期、结束日期)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

【C#】组件化开发,调用dll组件方法
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129492112

【C#】数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

【C#】单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

【C#】二维码标签制作及打印
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

【C#】最全单据打印源码(设计打印模板、条形码&二维码、标签、字体)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

【C#】条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

【C#】IIS平台下,WebAPI发布及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【C#】【提高编程效率】代码模板生成工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

【C#】【提高编程效率】Excel数据批量导入数据库
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

【C#】Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

【C#】穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

【C#】任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

【C#】《周计划管理关于产前准备模块》解决方案20200203
本文链接:https://blog.csdn.net/youcheng_ge/article/details/122919543

【C#】源码解析正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

【C#】软件版本和文件MD5记录(XML操作)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

【C#】测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

【C#】根据名称获取编码(Dictionary获取key方法)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129816701

【C#】数据建模,你是使用DataTable还是List?
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129792726

【C#】GridControl控件和List数据集双向绑定
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129423755

【C#】GridControl动态更换DataSource,数据查询异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/130305424



前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。本专栏收纳项目开发过程的解决方案,是我项目开发相对成熟、可靠方法的提炼,我将这些问题的解决思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,专栏文章关联性较弱(文章之间依赖性较弱,没有阅读顺序)。大家有任何问题,可以私信我。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现复杂的功能。

·提示:本专栏为项目实战篇,未接触项目开发的同学可能理解困难,不推荐阅读。
3A0N000001


一、问题描述

解决程序中下载附件,比如 下载Excel模板、下载 报销单模板等,不连接服务器,纯单机形式。资源占用小。

二、解决方案

将Excel放在程序中,然后以二进制形式写文件流。

三、软件开发(源码)

3.1 添加资源文件

新建–>资源文件,重命名 Res.resx
在这里插入图片描述
Ctrl+V 拷贝进Excel模板。
在这里插入图片描述

3.2 引入命名空间

using System.IO;
using System.Windows.Forms;

3.3 实现代码

	private void Mi_DownExcel_Click(object sender, EventArgs e)
	{
	    //实例化一个保存文件对话框
	    SaveFileDialog sf = new SaveFileDialog();
	    //设置文件保存类型
	    sf.Filter = "Excel 工作簿|*.xlsx|Excel 97-2003 工作簿|*.xls|所有文件(*.*)|*.*";
	    //如果用户没有输入扩展名,自动追加后缀
	    sf.AddExtension = true;
	    //设置标题
	    sf.Title = "母线质量信息登记";
	    sf.FileName = "母线质量信息登记";
	    //如果用户点击了保存按钮
	    if (sf.ShowDialog() == DialogResult.OK)
	    {
	        //实例化一个文件流--->与写入文件相关联
	        FileStream fs = new FileStream(sf.FileName, FileMode.Create);
	        //获得字节数组
	        byte[] data = Res.母线质量信息登记;
	        //开始写入
	        fs.Write(data, 0, data.Length);
	        //清空缓冲区、关闭流
	        fs.Flush();
	        fs.Close();
	
	        FrmTips.ShowTipsSuccess(this, "下载成功!");
	    }
	}

方法二:
使用DevExpress控件。

//函数内容: 菜单按钮,Excel模板下载
//函数版本: 0.0.0.1
//修改时间: 2023.05.11
//============================================================================================
//注意事项
//  1.  
//  2.  
//============================================================================================
private void Mi_ExcelDown_Click(object sender, EventArgs e)
{
   try
   {
       XtraSaveFileDialog sf = new XtraSaveFileDialog();
       sf.Filter = "Excel 工作簿|*.xlsx|Excel 97-2003 工作簿|*.xls|所有文件(*.*)|*.*";
       sf.AddExtension = true;
       sf.ValidateNames = true;
       sf.Title = "模具检验Excel模板";
       sf.FileName = "模具检验Excel模板";
       if (sf.ShowDialog() == DialogResult.OK)
       {
           //FileStream fs = new FileStream(sf.FileName, FileMode.Create);
           //byte[] data = Resource .母线质量信息登记;
           //fs.Write(data, 0, data.Length);
           //fs.Flush();
           //fs.Close();
       }
   }
   catch (Exception ex)
   {
       BaseHMI.ShowWarn("Excel模板下载异常 Mi_ExcelDown_Click:" + ex);

   }
}

四、项目展示

五、资源链接

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。