EXCEL 导出


web开发:
条件:
1.一个xml模板
2.一个.xsl模板文件
3.一个数据集合
结果
4.将数据集合按照.XML文件的要求写到.XSL文件里面

写代码的时候首先的从服务器端下载xml与excel文件,然后得到数据集合,生成数据写到.EXCEL

文件里面。

这样做的好处:
由于.xsl模板文件已经存在,里面一些数据格式可以直接在模板文件里面进行定义,这样

的话,很多样式可以很简单的在模板文件里面进行实现。比如之前的输出的数据格式00001到

excel里面是1。

 

源码:

public class ExportExcel : INotifyPropertyChanged
    {
        #region 导出Excel
        private ExcelApp _excel;
        public void Export(string xls, string xml, Dictionary<string, object> Collects)
        {
            if (!Application.Current.IsRunningOutOfBrowser)
            {
                DialogHelper.AlertDialog("此功能需要在OOB模式下运行.", "提示");
                return;
            }
            ObservableCollection<string> lst = new ObservableCollection<string>();
            lst.Add("Upload\\" + xls);          //标签文件                  
            lst.Add("Upload\\" + xml);          //模板文件
            InnerHelper.ProjectTotalizeProxy.GetStreamArrayByFiles(lst, null,
                      (s, args) =>
                      {
                          if (args.Error != null)
                          {
                              WaitingDialogHelper.Close();
                              DialogHelper.AlertDialog(args.Error.Message, "操作提示");
                              return;
                          }
                          if (args.Cancelled == true) return;
                          ObservableCollection<byte[]> LstStream = (ObservableCollection<byte[]>)args.Result;
                          MemoryStream tplExcel = new MemoryStream(LstStream[0]);    //模板文件流             
                          MemoryStream msxml = new MemoryStream(LstStream[1]);    //标签文件流                      

                          #region 获取我的文档地址
                          string tempFloder = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "BaffinWorking");
                          if (System.IO.Directory.Exists(tempFloder) != true)
                              System.IO.Directory.CreateDirectory(tempFloder);
                          var _sevefilename = tempFloder + "\\" + xls;
                          #endregion
                          _excel = ExcelApp.Generate(_sevefilename, msxml, Encoding.UTF8, tplExcel, Collects, XlWindowState.xlMaximized);
                          _excel.AfterClose += new EventHandler<EventArgs>(Excel_AfterClose);
                          WaitingDialogHelper.Close();
                      }
                 );
        }
        private void Excel_AfterClose(object sender, EventArgs e)
        {
            _excel = null;
        }
        #endregion

        #region 其他

        public event PropertyChangedEventHandler PropertyChanged;
        public void OnPerprotyChange(string propertyName)
        {
            if (this.PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
        #endregion
    }


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

18妹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值