示例#1
0
 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);
        }
示例#3
0
        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();
        }