Beispiel #1
0
        /// <summary>
        /// TGrpシートのデータ埋めと書式あてこみメソッド
        /// </summary>
        /// <param name="book">ExcelBookオブジェクト</param>
        /// <param name="lists">HULFT転送グループ定義データオブジェクト</param>
        /// <returns></returns>
        public bool UpdateTGrpBook(IWorkbook book, List <HulftTGrpDef> lists)
        {
            var sheet = book.GetSheet(ConstHulft.SHEETNAME_GRP);

            // セルに充てるスタイルの組み立て
            Dictionary <String, ICellStyle> styles = MyCreateStyles.CreateStyles(book);

            // 左上にシート名を
            WriteCell(sheet, styles["indexLabel"], (0, 0), ConstHulft.SHEETNAME_GRP);

            // データヘッダーの組み立て
            var header     = new HulftTGrpDef("Header");
            var headerList = header.GetListValues();

            // データヘッダーブロックの書き出し
            (int y, int x)p = (2, 1);
            headerList.Insert(0, "No.");
            for (int x = 0; x < headerList.Count; x++)
            {
                WriteCell(sheet, styles["indexLabel"], (p.y, p.x + x), headerList[x]);
            }
            sheet.SetAutoFilter(new CellRangeAddress(p.y, p.y, p.x, p.x + headerList.Count - 1));

            // データブロックの書き出し
            p = (3, 1);
            for (int y = 0; y < lists.Count; y++)
            {
                //var dataList = lists[y].getListValues();
                var dataList = lists[y].GetListValues();
                dataList.Insert(0, (y + 1).ToString());
                for (int x = 0; x < dataList.Count; x++)
                {
                    if (x == 1)
                    {
                        WriteCell(sheet, styles["defDataBa"], (p.y + y, p.x + x), dataList[x]);
                    }
                    else
                    {
                        WriteCell(sheet, styles["defData"], (p.y + y, p.x + x), dataList[x]);
                    }
                }
            }

            // カラムのAutoSize
            for (int x = 0; x < headerList.Count; x++)
            {
                sheet.AutoSizeColumn(p.x + x, true);
            }

            return(true);
        }
        /// <summary>
        /// Excelブックの中身を構成していくメソッド
        /// </summary>
        /// <param name="bookName">Excelファイル名</param>
        /// <returns></returns>
        public bool NewExcelBook(string bookName)
        {
            try
            {
                //Hulft定義Bookのテンプレートを新規に作成
                IWorkbook book = new XSSFWorkbook();

                Dictionary <String, ICellStyle> styles = MyCreateStyles.CreateStyles(book);

                //定型シートを作成
                book.CreateSheet(ConstHulft.SHEETNAME_IDX);
                book.CreateSheet(ConstHulft.SHEETNAME_SND);
                book.CreateSheet(ConstHulft.SHEETNAME_RCV);
                book.CreateSheet(ConstHulft.SHEETNAME_GRP);
                book.CreateSheet(ConstHulft.SHEETNAME_HST);
                book.CreateSheet(ConstHulft.SHEETNAME_JOB);

                var sheetIdx = book.GetSheet(ConstHulft.SHEETNAME_IDX);
                var sheetSnd = book.GetSheet(ConstHulft.SHEETNAME_SND);
                var sheetRcv = book.GetSheet(ConstHulft.SHEETNAME_RCV);
                var sheetGrp = book.GetSheet(ConstHulft.SHEETNAME_GRP);
                var sheetHst = book.GetSheet(ConstHulft.SHEETNAME_HST);
                var sheetJob = book.GetSheet(ConstHulft.SHEETNAME_JOB);

                //定型シートの中身を整える
                FormatSheetIdx(styles, sheetIdx);
                FormatSheetSnd(styles, sheetSnd);
                FormatSheetRcv(styles, sheetRcv);
                FormatSheetGrp(styles, sheetGrp);
                FormatSheetHst(styles, sheetHst);
                FormatSheetJob(styles, sheetJob);

                //テンプレートBookを書き出す
                using (var fs = new FileStream(bookName, FileMode.Create))
                {
                    book.Write(fs);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

            return(true);
        }