欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

NPOI给单元格加范围边框

程序员文章站 2022-06-26 13:10:24
HSSFWorkbook workbook2 = new HSSFWorkbook(); //XSSFWorkbook workbook2 = new XSSFWorkbook();//建立Excel2007对象 HSSFSheet sheet1; /// /// 99乘法表 / ......

HSSFWorkbook workbook2 = new HSSFWorkbook();
        //XSSFWorkbook workbook2 = new XSSFWorkbook();//建立Excel2007对象
        HSSFSheet sheet1;
        /// <summary>
        /// 99乘法表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            sheet1 = (HSSFSheet )workbook2.CreateSheet("Sheet1");
            for (int rowIndex = 0; rowIndex < 9; rowIndex++)
            {
                HSSFRow row = (HSSFRow)sheet1.CreateRow(rowIndex);
                for (int colIndex = 0; colIndex <= rowIndex; colIndex++)
                {
                    HSSFCell cell = (HSSFCell)row.CreateCell(colIndex);
                    cell.SetCellValue(String.Format("{0}*{1}={2}", rowIndex + 1, colIndex + 1, (rowIndex + 1) * (colIndex + 1)));
                }
            }
            //加范围边框
            AddRengionBorder(0, 9, 0, 9);
            FileStream fs = new FileStream(@"C:\Users\Administrator\Desktop\aa.xls", FileMode.Create, FileAccess.Write);
            workbook2.Write(fs);
            fs.Dispose();
            MessageBox.Show("导出OK");
        }
       
        


        /// <summary>
        /// 加范围边框
        /// </summary>
        /// <param name="firstRow">起始行</param>
        /// <param name="lastRow">结束行</param>
        /// <param name="firstCell">起始列</param>
        /// <param name="lastCell">结束列</param>
        /// <returns></returns>
        public void AddRengionBorder(int firstRow, int lastRow, int firstCell, int lastCell)
        {
            //HSSFCellStyle Style = (HSSFCellStyle)workbook2.CreateCellStyle();
            for (int i = firstRow; i < lastRow; i++)
            {
                for (int n = firstCell; n < lastCell; n++)
                {
                    ICell cell;
                    cell = sheet1.GetRow(i).GetCell(n);
                    if (cell == null)
                    {
                        cell = sheet1.GetRow(i).CreateCell(n);
                        cell.SetCellValue(" ");
                    }
                    HSSFCellStyle Style = workbook2.CreateCellStyle() as HSSFCellStyle;
                    ////为首行加上方边框
                    if (i == firstRow)
                    {
                        Style.BorderTop = ss.UserModel.BorderStyle.THIN;
                    }
                    //为末行加下方边框
                    if (i == lastRow-1)
                    {
                        Style.BorderBottom = ss.UserModel.BorderStyle.THIN;
                    }
                    //为首列加左边框
                    if (n == firstCell)
                    {
                        Style.BorderLeft = ss.UserModel.BorderStyle.THIN;
                    }
                    //为末列加右边框
                    if (n == lastCell-1)
                    {
                        Style.BorderRight = ss.UserModel.BorderStyle.THIN;
                    }
                    cell.CellStyle = Style;
                }


            }
        }
    }