public void Export(DataRequestrequest, DataResponse response) { try { var order = GetShopModel(request.ObjectData.guid); var newFile = Directory.GetCurrentDirectory() + "\\Export\\Order" + order.OrderDate + ".xls"; string p = System.IO.Path.GetDirectoryName(newFile); if (!System.IO.Directory.Exists(p)) System.IO.Directory.CreateDirectory(p); var ShopGid = order.ShopGid; string startTime = order.OrderDate.Split('~')[0] + " 00:00:00"; string endTime = order.OrderDate.Split('~')[1] + " 23:59:59"; using (var fs = new FileStream(newFile, FileMode.Create, FileAccess.Write)) { IWorkbook workbook = new XSSFWorkbook(); #region 车辆销售订单明细 ISheet sheet1 = workbook.CreateSheet("门店销售订单明细"); //index代表多少行 var rowIndex = 0; //创建表头行 IRow row = sheet1.CreateRow(rowIndex); row.HeightInPoints = 30;//行高 row.CreateCell(0).SetCellValue("门店商铺"); row.CreateCell(1).SetCellValue("商铺号码"); row.CreateCell(2).SetCellValue("销售单号"); row.CreateCell(3).SetCellValue("提车时间"); //填充数据 List OrderShops = GetModelExl(ShopGid.Value, startTime, endTime); for (int i = 0; i < OrderShops.Count; i++) { IRow row1 = sheet1.CreateRow(i + 1); ICell cell = row1.CreateCell(0); //创建第一列 #region 标题行设置字体 ICellStyle style = workbook.CreateCellStyle();//创建样式对象 //设置单元格的样式:水平对齐填充 style.Alignment = HorizontalAlignment.Left; style.VerticalAlignment = VerticalAlignment.Center;//垂直居中 //自动换行 style.WrapText = true; IFont font = workbook.CreateFont(); //创建一个字体样式对象 font.FontName = "宋体"; //和excel里面的字体对应 font.IsItalic = false; //斜体 font.FontHeightInPoints =15 ;//字体大小 //font.Boldweight = short.MaxValue;//字体加粗 font.Boldweight = (Int16)FontBoldWeight.Bold;//加粗; style.SetFont(font); //将字体样式赋给样式对象 //cell.CellStyle = style; //把样式赋给单元格 /*修改指定单元格样式 如果要修改行样式则需要将row.Cells.Count循环出来,挨个设置!*/ // row.Cells[1].CellStyle = style; for (int k = 0; k < row.Cells.Count; k++) { row.Cells[k].CellStyle = style; //列宽25 //设置列宽 sheet1.SetColumnWidth(k, 25 * 256); } #endregion #region 单元格列值属性样式 //for (int jj = 0; jj < row1.Cells.Count; jj++) //{ // row1.Cells[jj].CellStyle = style; //} //cell.CellStyle = style; #endregion cell.SetCellValue(OrderShops[i].ShopName); cell = row1.CreateCell(1);//设置单元格的值 //设置列值样式 //row1.CreateCell(0).CellStyle = style; cell.SetCellValue(order.ShopNo); cell = row1.CreateCell(2); cell.SetCellValue(OrderShops[i].OrderSaleNo); cell = row1.CreateCell(3); cell.SetCellValue(OrderShops[i].PayDateTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); } #endregion #endregion #region 车辆销售换货明细表格 //创建表头 ISheet sheet6 = workbook.CreateSheet("车辆销售换货明细表格"); IRow row6 = sheet6.CreateRow(0); row6.HeightInPoints = 30;//行高 row6.CreateCell(0).SetCellValue("换货单号"); row6.CreateCell(1).SetCellValue("新车辆颜色"); row6.CreateCell(2).SetCellValue("原车辆型号类型"); var table = GetChangeOrder(ShopGid.Value, startTime, endTime); j = 0; foreach (DataRow item in table.Rows) { IRow row1 = sheet6.CreateRow(j + 1); ICell cell = row1.CreateCell(0); #region 标题行设置字体 ICellStyle style = workbook.CreateCellStyle();//创建样式对象 //设置单元格的样式:水平对齐填充 style.Alignment = HorizontalAlignment.Left; style.VerticalAlignment = VerticalAlignment.Center;//垂直居中 //自动换行 style.WrapText = true; IFont font = workbook.CreateFont(); //创建一个字体样式对象 font.FontName = "宋体"; //和excel里面的字体对应 font.IsItalic = false; //斜体 font.FontHeightInPoints = 15;//字体大小 //font.Boldweight = short.MaxValue;//字体加粗 font.Boldweight = (Int16)FontBoldWeight.Bold;//加粗; style.SetFont(font); //将字体样式赋给样式对象 //cell.CellStyle = style; //把样式赋给单元格 /*修改指定单元格样式 如果要修改行样式则需要将row.Cells.Count循环出来,挨个设置!*/ // row.Cells[1].CellStyle = style; for (int k = 0; k < row6.Cells.Count; k++) { row6.Cells[k].CellStyle = style; //列宽25 sheet6.SetColumnWidth(k, 25 * 256); } #endregion cell.SetCellValue(DataConvertHelper.GetString(item["ChangeNo"])); cell = row1.CreateCell(1); cell.SetCellValue(DataConvertHelper.GetString(item["OrderColor"])); cell = row1.CreateCell(2); cell.SetCellValue(DataConvertHelper.GetString(item["OrderType"])); j++; } #endregion workbook.Write(fs); } response.Tag = Common.ExportFile.ExportFlag; response.ObjectData = new Common.ExportFile { FilePath = newFile, FileName = "订单信息" + 20190101 + ".xls" }; } catch (Exception ex) { LogHelper.Debug("异常" + ex.Message, "导出异常", this.GetType().ToString()); response.ObjectData= ex.Message; } }