【前言】
系统的开发,大部分都有数据导出到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,高效利用社区里面的知识,在自己的成长之路很有必要的。