【项目学习】——下载Excel模板

    小编最近在跟项目,在项目中的历练也是学习到了很多,不知道大家是否曾注意到在很多项目中有模板下载的功能。自己做的ITOO的考评模板时,有很多导出导入的功能,一直算是一个功能的维护吧。只是简单看过,没有机会,感谢订餐系统,给了这次机会,也是自己发挥死不要脸精神,非要给人家做一个功能吧。

    首先说要做模板的格式取决于什么?主要是在导入Excel的过程需要哪些内容,这些刚好成为制作模板的主要组成部分。关于这一部分有两种方式,一是让系统通过代码动态生成Excel模板,为用户提供下载;二是提前做好一个模板,然后在程序中写好该部分的代码,只需要读文件的路径,下载就行了。

先看代码,请大家判断我用的是方法几?

        #region btnDown+下载批量导入模板+贾文静+2016年8月13日10:19:59
        protected void btnDown_Click(object sender, EventArgs e)
        {
            //客户端保存的文件名
            string fileName = "DownLoad.xlsx";
            //服务上模板的路径
            string filePath = Server.MapPath("DownLoad.xlsx");
            //以字符流的形式下载文件
            FileStream fs = new FileStream(filePath, FileMode.Open);
            byte[] bytes = new byte[(int)fs.Length];
            fs.Read(bytes, 0, bytes.Length);
            fs.Close();
            Response.ContentType = "application/vnd.ms-excel";
            //通知浏览器下载文件而不是打开
            Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
            Response.BinaryWrite(bytes);
            Response.Flush();
            Response.End();
        }
        #endregion

    这次我采用的方法二,原因一是此模板格式固定,除非程序改动,否则该模板样式不会改变;二是这样会比动态生成模板效率高,还有一点,当时开发时间紧张,没有时间研究动态生成的过程,还是在于自己偷懒啊。代码非常简单,主要是读取机器上的Excel模板存放的路径。其实我采用的这种方式存在很大的弊端,但是该模板文件在意外环境下丢失,那么这个功能的实现基本作废,留下只能用户的无限抱怨。而方法一,就有很大的优势,动态生成,和文件是否丢失无关,在任何情况下都可以使用。因为做过机房收费系统中导出Excel的功能,其实静下心想,动态生成也就那么一会儿事啊。

    【总结】

     可能是项目的历练,这次尝试做订餐,觉得做些东西也不再想象中的那那么困难了。还是能感到非常高兴的。其实在实现这个过程中尝试了很多种方式,一直提示模板文件报错,可是当快放弃的时候,就神奇的成功了,或许这就做程序猿的乐趣吧。还有这个过程我觉会体会用户的感受了,因为当给我这个模块的时候让我来做,错误信息弹出的部分,只有导入功能,用户肯定会用这不方便的,所以多此一举,做个功能,希望可以真正提高用户的满意度。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mandy_i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值