Example #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>
        /// Book内のIndexシートの飾り付けるメソッド
        /// </summary>
        /// <param name="book">ExcelBookのIクラス</param>
        /// <param name="styles">使用するスタイルのDictionary</param>
        /// <param name="sheet">ExcelSheetのIクラス</param>
        /// <returns>Bool True or False</returns>
        public bool FormatSheetIdx(Dictionary <String, ICellStyle> styles, ISheet sheet)
        {
            //メモリ線を非表示
            sheet.DisplayGridlines = false;

            //TopLeft シートタイトル埋め込み
            WriteCell(sheet, styles["topleft"], (0, 0), ConstHulft.SHEETNAME_IDX);

            //Sheetのインデックス埋め込み
            var titles = new List <(int no, string name)> {
                (1, ConstHulft.SHEETNAME_SND)
                , (2, ConstHulft.SHEETNAME_RCV)
                , (3, ConstHulft.SHEETNAME_GRP)
                , (4, ConstHulft.SHEETNAME_HST)
                , (5, ConstHulft.SHEETNAME_JOB)
            };

            //Sheetの中身を整える
            (int y, int x) = (1, 1);

            foreach (var(no, name) in titles)
            {
                //番号埋め
                WriteCell(sheet, styles["indexBox"], (y + no, x), no);

                //シート名を埋めてリンクを付ける
                var link = new XSSFHyperlink(HyperlinkType.Document)
                {
                    Address = name + "!A1"
                };
                WriteCell(sheet, styles["indexLabel"], link, (y + no, x + 1), name);
            }

            //カラムの横幅Autoが好き
            sheet.AutoSizeColumn(0, true);

            return(true);
        }
 /// <summary>
 /// Book内のJobシートを飾り付けるメソッド HULFTジョブ定義用シート
 /// </summary>
 /// <param name="styles">CellStyleをセットしたDictionaryオブジェクト</param>
 /// <param name="sheet">Jobシートオブジェクト</param>
 /// <returns>true or false</returns>
 public bool FormatSheetJob(Dictionary <String, ICellStyle> styles, ISheet sheet)
 {
     sheet.DisplayGridlines = false;
     WriteCell(sheet, styles["topleft"], (0, 0), ConstHulft.SHEETNAME_JOB);
     return(true);
 }