protected void txtout_Click(object sender, EventArgs e) {
string word = ViewState["SelectedWOID"].ToString(); List<Entity.QualManage.PieceStem> list = bllPS.GetexcelInfo(word); List<Entity.QualManage.BladeConstitute> list1 = bllPI.GetexcelInfo(word); int count = list.Count/10; string time = list[0].DetectTime; NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("sheet1"); //ICellStyle cellStyle = book.CreateCellStyle(); //设置单元格的样式:水平对齐居中 //cellStyle.VerticalAlignment = VerticalAlignment.Justify;//垂直对齐(默认应该为center,如果center无效则用justify) //cellStyle.Alignment = HorizontalAlignment.Center;//水平对齐 //row2.CreateCell(0).CellStyle = cellstyle; //NPOI .SS.UserModel.i //标题 NPOI.SS.UserModel.IRow row = sheet.CreateRow(0); row.CreateCell(0).SetCellValue("叶片结构原始表"); CellRangeAddress region = new CellRangeAddress(0, 0, 0, 80);//合并单元格 sheet.AddMergedRegion(region); // NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(1); row1.CreateCell(0).SetCellValue("日期"); row1.CreateCell(1).SetCellValue(time); row1.CreateCell(5).SetCellValue("厂家"); row1.CreateCell(6).SetCellValue(""); row1.CreateCell(8).SetCellValue("班次"); string team = list [0].TeamName; string banci = list [0].ShiftName ; row1 .CreateCell (9).SetCellValue (team); // 第一行 NPOI.SS.UserModel.IRow row2 = sheet.CreateRow(2); row2.CreateCell(0).SetCellValue("项目"); CellRangeAddress region0 = new CellRangeAddress(2, 4, 0, 0);//合并单元格 sheet.AddMergedRegion(region0); for (int i = 1; i <=count ; i++) { row2.CreateCell(1).SetCellValue("检测次数"); string no = list[i-1].DetectNo; row2.CreateCell(2*i ).SetCellValue(no); CellRangeAddress region1 = new CellRangeAddress(2, 2, 2*i, 2*i+1 );//合并单元格 sheet.AddMergedRegion(region1); } // 第二行 NPOI.SS.UserModel.IRow row3 = sheet.CreateRow(3); row3.CreateCell(1).SetCellValue("取样时间"); row3.CreateCell(2).SetCellValue("8:00"); CellRangeAddress region2 = new CellRangeAddress(3, 3, 2, 3);//合并单元格 sheet.AddMergedRegion(region2); /// NPOI.SS.UserModel.IRow row4 = sheet.CreateRow(4); row4.CreateCell(1).SetCellValue("单位"); row4.CreateCell(2).SetCellValue("g"); row4.CreateCell(3).SetCellValue("%"); // 叶片结构 NPOI.SS.UserModel.IRow row5 = sheet.CreateRow(5); row5.CreateCell(0).SetCellValue("叶片结构"); row5.CreateCell(1).SetCellValue("叶片总重"); for (int i = 1; i <= count; i++) { string sw = list[i-1].SampleTotalWt.ToString(); row5.CreateCell(2*i).SetCellValue(sw); CellRangeAddress region9 = new CellRangeAddress(5, 5, 2*i, 2*i+1);//合并单元格 sheet.AddMergedRegion(region9); } CellRangeAddress region3 = new CellRangeAddress(5, 13, 0, 0);//合并单元格 sheet.AddMergedRegion(region3); CellRangeAddress region4 = new CellRangeAddress(5, 5, 2, 3);//合并单元格 sheet.AddMergedRegion(region4); //≥25.4mm NPOI.SS.UserModel.IRow row6 = sheet.CreateRow(6); row6.CreateCell(1).SetCellValue("≥25.4mm"); for (int i = 1; i <=count; i++) { string w1 = list[i-1].SampleWt.ToString(); row6.CreateCell(2*i).SetCellValue(w1); } for (int i = 1; i <= count; i++) { string p1 = list[i - 1].DetectProp.ToString(); row6.CreateCell(2 * i+1).SetCellValue(p1); } //12.7-25.4mm NPOI.SS.UserModel.IRow row7 = sheet.CreateRow(7); row7.CreateCell(1).SetCellValue("12.7-25.4mm"); for (int i = 1 ; i <= count; i++) { string w2 = list[i +7*count -1].SampleWt.ToString(); row7.CreateCell(2*i).SetCellValue(w2); } for (int i = 1; i <= count; i++) { string p2 = list[i+7*count -1].DetectProp.ToString(); row7.CreateCell(2*i+1).SetCellValue(p2); } //≥12.7mm NPOI.SS.UserModel.IRow row8 = sheet.CreateRow(8); row8.CreateCell(1).SetCellValue("≥12.7mm"); for (int i = 1; i <= count; i++) { string w3 = list[i +count -1].SampleWt.ToString(); row8.CreateCell(2*i).SetCellValue(w3); } for (int i = 1; i <= count; i++) { string p3 = list[i +count -1].DetectProp.ToString(); row8.CreateCell(2*i+1).SetCellValue(p3); } //6.35-12.7mm NPOI.SS.UserModel.IRow row9 = sheet.CreateRow(9); row9.CreateCell(1).SetCellValue("6.35-12.7mm"); for (int i = 1; i <= count; i++) { string w4 = list[i +8*count - 1].SampleWt.ToString(); row9.CreateCell(2*i).SetCellValue(w4); } for (int i = 1; i <= count; i++) { string p4 = list[i +8*count- 1].DetectProp .ToString(); row9.CreateCell(2 * i+1).SetCellValue(p4); } //≥6.35mm NPOI.SS.UserModel.IRow row10 = sheet.CreateRow(10); row10.CreateCell(1).SetCellValue("≥6.35mm"); for (int i = 1; i <= count; i++) { string w5 = list[i+2*count - 1].SampleWt.ToString(); row10.CreateCell(2 * i).SetCellValue(w5); } for (int i = 1; i <= count; i++) { string p5 = list[i+2*count - 1].DetectProp.ToString(); row10.CreateCell(2 * i + 1).SetCellValue(p5); } //3.18-6.35mm NPOI.SS.UserModel.IRow row11 = sheet.CreateRow(11); row11.CreateCell(1).SetCellValue("3.18-6.35mm"); for (int i = 1; i <= count; i++) { string w6 = list[i+9*count - 1].SampleWt.ToString(); row11.CreateCell(2 * i).SetCellValue(w6); } for (int i = 1; i <= count; i++) { string p6 = list[i+9*count - 1].DetectProp.ToString(); row11.CreateCell(2 * i + 1).SetCellValue(p6); } //≥3.18mm NPOI.SS.UserModel.IRow row12 = sheet.CreateRow(12); row12.CreateCell(1).SetCellValue("≥3.18mm"); for (int i = 1; i <= count; i++) { string w7 = list[i+3*count - 1].SampleWt.ToString(); row12.CreateCell(2 * i).SetCellValue(w7); } for (int i = 1; i <= count; i++) { string p7 = list[i +3*count- 1].DetectProp.ToString(); row12.CreateCell(2 * i + 1).SetCellValue(p7); } //≤3.18mm NPOI.SS.UserModel.IRow row13 = sheet.CreateRow(13); row13.CreateCell(1).SetCellValue("≤3.18mm"); for (int i = 1; i <= count; i++) { string w8 = list[i+6*count - 1].SampleWt.ToString(); row13.CreateCell(2 * i).SetCellValue(w8); } for (int i = 1; i <= count; i++) { string p8 = list[i + 6 * count - 1].DetectProp.ToString(); row13.CreateCell(2 * i + 1).SetCellValue(p8); } //叶中含梗 NPOI.SS.UserModel.IRow row14 = sheet.CreateRow(14); row14.CreateCell(0).SetCellValue("叶重含梗"); CellRangeAddress region5 = new CellRangeAddress(14, 16, 0, 0);//合并单元格 sheet.AddMergedRegion(region5); row14.CreateCell(1).SetCellValue("总梗重"); for (int i = 1; i <= count; i++) { string w9 = list[i+4 * count - 1].SampleWt .ToString(); row14.CreateCell(2*i).SetCellValue(w9); CellRangeAddress region10 = new CellRangeAddress(14, 14, 2*i, 2*i+1);//合并单元格 sheet.AddMergedRegion(region10); } CellRangeAddress region6 = new CellRangeAddress(14, 14, 2, 3);//合并单元格 sheet.AddMergedRegion(region6); //叶中含梗 NPOI.SS.UserModel.IRow row15 = sheet.CreateRow(15); row15.CreateCell(1).SetCellValue("叶中含梗"); for (int i = 1; i <= count; i++) { string w9 = list[i+4*count -1].SampleWt .ToString (); row15.CreateCell(2*i).SetCellValue(w9); } for (int i = 1; i <= count; i++) { string p9 = list[i+4 * count - 1].DetectProp .ToString(); row15.CreateCell(2*i+1).SetCellValue(p9); } //OBJ NPOI.SS.UserModel.IRow row16 = sheet.CreateRow(16); row16.CreateCell(1).SetCellValue("OBJ"); for (int i = 1; i <= count; i++) { string w10 = list[i+5 * count - 1].SampleWt .ToString(); row16.CreateCell(2*i).SetCellValue(w10); } for (int i = 1; i <= count; i++) { string p10 = list[i+5* count - 1].DetectProp.ToString(); row16.CreateCell(2*i +1).SetCellValue(p10); } // 梗重含叶 NPOI.SS.UserModel.IRow row17= sheet.CreateRow(17); row17.CreateCell(0).SetCellValue("梗重含叶"); CellRangeAddress region7 = new CellRangeAddress(17, 19, 0, 0);//合并单元格 sheet.AddMergedRegion(region7); row17.CreateCell(1).SetCellValue("梗重"); for (int i = 1; i <= count; i++) { string w = list1[i-1].SampleTotalWt.ToString(); row17.CreateCell(2*i).SetCellValue(w); CellRangeAddress region11 = new CellRangeAddress(17, 17, 2*i, 2*i+1);//合并单元格 sheet.AddMergedRegion(region11); } CellRangeAddress region8 = new CellRangeAddress(17, 17, 2, 3);//合并单元格 sheet.AddMergedRegion(region8); NPOI.SS.UserModel.IRow row18= sheet.CreateRow(18); row18.CreateCell(1).SetCellValue("叶重"); for (int i = 1; i <= count; i++) { string w11 = list1[i - 1].LeafWt.ToString(); row18.CreateCell(2 * i).SetCellValue(w11); } for (int i = 1; i <= count; i++) { string p11 = list1[i - 1].LeafProp.ToString(); row18.CreateCell(2 * i + 1).SetCellValue(p11); } NPOI.SS.UserModel.IRow row19= sheet.CreateRow(19); row19.CreateCell(1).SetCellValue("≥20mm烟梗"); for (int i = 1; i <= count; i++) { string w12 = list1[i+count - 1].LeafWt.ToString(); row19.CreateCell(2 * i).SetCellValue(w12); } for (int i = 1; i <= count; i++) { string p12 = list1[i+count - 1].LeafProp.ToString(); row19.CreateCell(2 * i + 1).SetCellValue(p12); } // 写入到客户端 System.IO.MemoryStream ms = new System.IO.MemoryStream(); book.Write(ms); Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", DateTime.Now.ToString("yyyyMMddHHmmssfff"))); Response.BinaryWrite(ms.ToArray()); book = null; ms.Close(); ms.Dispose(); }