iview实现选择性的导出数据到excel表中

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a11112244444/article/details/78974135

【前言】

系统的开发,大部分都有数据导出到excel表里面的操作,毕竟系统里面的数据需要保存起来的,但是有时候用户需要保存的字段做到有选择的,所以我今天给大家分享一个既可以漂亮的导出excel表,又可以实现有选择的导出数据的方法。

【前端】

1.添加导出的按钮,通过按钮来找到导出调后端的方法:

 <Button type="primary" size="large"   @click="exportData(1)">导出</Button>  
2.
//导出查出来的绑定信息//下面的data7为需要导出的数据。
     exportData (type) {
              if (type === 1) {
                  
                   var vm =this;
                  axios.post(vm.apiUrl+"/ExportToExcel",vm.data7)
                  .then(function(response){
                  alert(response.data);
                  window.open("服务器的地址+自己文件的名称"); 
                  vm.model1=false;
              })
                  .catch(function(error){
                  alert(error)
              })
                }
              
     },
【后端】

控制器,调B层的接口

 [HttpPost]
        [Route("ExportToExcel")]
        public string ExportToExcel(IList<CV_POM_ORDER_CMPLT_FINISH> dataList)
        {
            try
            {
                orderCmpltFinishBO.createExcel(dataList);
                return "导出Excel成功请保存!Export Excel Success!";
            }
            catch (Exception)
            {
                return "导出Excel失败!Export Excel Failed!";
            }


        }
重中之重的B层,进行选择性的导出数据到excel表了。
public void createExcel(IList<CV_POM_ORDER_CMPLT_FINISH> dataList)
        {

            //创建工作薄  
            XSSFWorkbook wk = new XSSFWorkbook();
            //创建一个名称为mySheet的表  
            ISheet tb = wk.CreateSheet("OrderList");
            //创建第一行  
            IRow rowHeader = tb.CreateRow(0);
            //设置行的高度 行高设置数值好像是像素点的1/20,所以*20以便达到设置效果;  
            rowHeader.Height = 20 * 20;
            ICell cell_one = rowHeader.CreateCell(0);
            for (int i = 0; i < 12; i++)
            {
                ICell cell = rowHeader.CreateCell(i);

                switch (i)
                {
                    case 0:
                        cell.SetCellValue("报工日期");
                        break;
                    case 1:
                        cell.SetCellValue("箱号");
                        break;
                   case 3:
                        cell.SetCellValue("工单");
                        break;
                   case 4:
                        cell.SetCellValue("SAP工单");
                        break;
                   case 5:
                        cell.SetCellValue("序列号");
                        break;
                   case 6:
                        cell.SetCellValue("数量");
                        break;     
                   case 7:
                        cell.SetCellValue("工序");
                        break;
                   case 8:
                        cell.SetCellValue("工位");
                        break;
                   case 9:
                        cell.SetCellValue("产线");
                        break;
                   case 10:
                        cell.SetCellValue("负责人");
                        break;
    
                }
                //自动适应列宽
                tb.AutoSizeColumn(i);
            }
           
            #region 创建数据行
            for (int i = 1; i <= dataList.Count; i++)
            {
                IRow row = tb.CreateRow(i);
                for (int j = 0; j < 10; j++)
                {

                    ICell cell = row.CreateCell(j);

                    switch (j)
                    {
                        case 1:
                            cell.SetCellValue(Convert.ToDateTime(dataList[i - 1].Day).ToShortDateString());
                            break;
                        case 2:
                            cell.SetCellValue(dataList[i - 1].HutID);
                            break;
                        case 3:
                            cell.SetCellValue(dataList[i - 1].PomOrderID);
                            break;
                        case 4:
                            cell.SetCellValue(dataList[i - 1].SapOrderID);
                            break;
                        case 5:
                            cell.SetCellValue(dataList[i - 1].LotID);
                            break;
                        case 6:
                            cell.SetCellValue(Convert.ToInt32(dataList[i - 1].Quantity));
                            break;
                        case 7:
                            cell.SetCellValue(dataList[i - 1].StepID);
                            break;
                        case 8:
                            cell.SetCellValue(dataList[i - 1].StationID);
                            break;
                        case 9:
                            cell.SetCellValue(dataList[i - 1].LineID);
                            break;
                        case 10:
                            cell.SetCellValue(dataList[i - 1].EventBy);
                            break;
                       
                    }
                    //自动适应列宽
                    tb.AutoSizeColumn(i);
                }
            }
            #endregion

            //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!  

            string phsicalPath = AppDomain.CurrentDomain.BaseDirectory;//System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            //string b = Environment.CurrentDirectory;

            using (FileStream fs = File.OpenWrite(string.Format(@"{0}/工单信息查看.xlsx", phsicalPath)))
            {
                try
                {//向打开的这个xls文件中写入mySheet表并保存。  
                    wk.Write(fs);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }  
【总结】

          给大家分享一个iview社区,https://www.vue-js.com/?tab=share&page=10,高效利用社区里面的知识,在自己的成长之路很有必要的。
   



           


展开阅读全文

没有更多推荐了,返回首页