public SheetEnumerator(XSSFWorkbook wb, SXSSFWorkbook xwb) { this._wb = wb; this._xwb = xwb; //wb.GetEnumerator(); it = wb.GetEnumerator(); }
/// <summary> /// 从DataSet按照固定规则写入文件模板 /// </summary> /// <param name="data">DataSet数据(预定的格式)</param> /// <param name="stream">模板excel对象(从预定的格式模板生成)</param> /// <returns></returns> public static int SetDataSet2Workbook(DataSet data, XSSFWorkbook workbook) { int result = 0; if (data != null && data.Tables.Count > 0) { IEnumerator sheetEnumerator = workbook.GetEnumerator(); for (int i = 0; sheetEnumerator.MoveNext(); i++) { //Sheet循环写入 ISheet sheet = (ISheet)sheetEnumerator.Current; if (data.Tables.Contains(sheet.SheetName)) { switch (sheet.SheetName) { case PurchasingOrderTotalDataTableName: result += ExcelUtil.SetDataTable2Sheet(sheet, PurchasingOrderTotalRowStarIndex, PurchasingOrderTotalColumnStarIndex, PurchasingOrderTotalSheetHeader, data.Tables[PurchasingOrderTotalDataTableName]); break; case PurchasingOrderGoodsSubtotalDataTableName: result += ExcelUtil.SetDataTable2Sheet(sheet, PurchasingOrderGoodsSubtotalRowStarIndex, PurchasingOrderGoodsSubtotalColumnStarIndex, PurchasingOrderGoodsSubtotalSheetHeader, data.Tables[PurchasingOrderGoodsSubtotalDataTableName]); break; case PurchasingOrderVendorSubtotalDataTableName: result += ExcelUtil.SetDataTable2Sheet(sheet, PurchasingOrderVendorSubtotalRowStarIndex, PurchasingOrderVendorSubtotalColumnStarIndex, PurchasingOrderVendorSubtotalSheetHeader, data.Tables[PurchasingOrderVendorSubtotalDataTableName]); break; ////case GoodsUnitDataTableName: //// result += ExcelUtil.SetDataTable2Sheet(sheet, GoodsUnitRowStarIndex, GoodsUnitColumnStarIndex, GoodsUnitSheetHeader, data.Tables[GoodsUnitDataTableName]); //// break; } } } } return(result); }
public void Bug58245_XSSFSheetIterator() { XSSFWorkbook wb = new XSSFWorkbook(); wb.CreateSheet(); // ===================================================================== // Case 1: Existing code uses XSSFSheet for-each loop // ===================================================================== // Original code (no longer valid) /* * for (XSSFSheet sh : wb) { * sh.createRow(0); * } */ // Option A: foreach (XSSFSheet sh in wb) { sh.CreateRow(0); } // Option B (preferred for new code): foreach (ISheet sh in wb) { sh.CreateRow(0); } // ===================================================================== // Case 2: Existing code creates an iterator variable // ===================================================================== // Original code (no longer valid) /* * Iterator<XSSFSheet> it = wb.iterator(); * XSSFSheet sh = it.next(); * sh.createRow(0); */ // Option A: { IEnumerator <ISheet> it = wb.GetEnumerator(); it.MoveNext(); XSSFSheet sh = it.Current as XSSFSheet; sh.CreateRow(0); } // Option B: { //IEnumerator<XSSFSheet> it = wb.XssfSheetIterator(); //XSSFSheet sh = it.Current; //sh.CreateRow(0); } // Option C (preferred for new code): { IEnumerator <ISheet> it = wb.GetEnumerator(); it.MoveNext(); ISheet sh = it.Current; sh.CreateRow(0); } wb.Close(); }