码迷,mamicode.com
首页 > 其他好文 > 详细

NPOI2.1.1简单使用

时间:2015-04-26 00:02:37      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

在.net中导出数据到Excel其中使用的比较多的是NPOI类库,但是NPOI版本存在比较多,并且改变较大,官方提供的代码不太完备,所以在这里简单记录一下。

一、使用的类库包:

using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;

二、创建工作表(3个)

HSSFWorkbook hssfworkbook = new HSSFWorkbook();
ISheet sheet = hssfworkbook.CreateSheet("Sheet1");
hssfworkbook.CreateSheet("Sheet2");
hssfworkbook.CreateSheet("Sheet3");
三、使用CreateRow()创建行对象,CreateCell()创建单元格对象,再通过SetCellValue()设置单元格的内容。

下面的是一个简单的例子,设置工作表的标题字体,并且合并第一行,前5列

            //Title
            IRow row = sheet.CreateRow(0);    //创建行对象
            ICell cell = row.CreateCell(0);   //创建单元格对象
            cell.SetCellValue(title);         //设置单元格内容

            // 设置单元格字体
            ICellStyle style = hssfworkbook.CreateCellStyle();
            style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
            IFont font = hssfworkbook.CreateFont();
            font.FontHeight = 20 * 20;
            style.SetFont(font);
            cell.CellStyle = style;

            // 合并第0列到第4列的内容
            sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0,0,0,4));
四、把WorkBook对象的内容写入到文件

            FileStream</span> file = new FileStream(filePath, FileMode.Create);
            hssfworkbook.Write(file);
            file.Close();


下面是一个简单的例子:

        /// <summary>
        /// 把DataGridView的内容导出到excel文件
        /// </summary>
        /// <param name="dgv">DataGridView对象</param>
        /// <param name="title">设置的标题</param>
        /// <param name="filePath">保存的文件路径</param>
        /// <returns></returns>
        public static int SaveToExcel(DataGridView dgv, string title, string filePath)
        {
            if (dgv==null ||(dgv.Rows.Count == 0 && dgv.Columns.Count == 0))
                return 1;
            HSSFWorkbook hssfworkbook = new HSSFWorkbook();
            ISheet sheet = hssfworkbook.CreateSheet("Sheet1");
            hssfworkbook.CreateSheet("Sheet2");
            hssfworkbook.CreateSheet("Sheet3");

            //Title
            IRow row = sheet.CreateRow(0);
            ICell cell = row.CreateCell(0);
            cell.SetCellValue(title);
            ICellStyle style = hssfworkbook.CreateCellStyle();
            style.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
            IFont font = hssfworkbook.CreateFont();
            font.FontHeight = 20 * 20;
            style.SetFont(font);
            cell.CellStyle = style;
            sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0,0,0,dgv.Columns.Count-1));
            
            //Header
            int r, c;
            row = sheet.CreateRow(1);
            for (c = 0; c < dgv.Columns.Count; c++)
            {
                row.CreateCell(c).SetCellValue(dgv.Columns[c].HeaderText);
            }

            // content
            for (r = 0; r < dgv.Rows.Count; r++)
            {
                row = sheet.CreateRow(r+2);
                for (c = 0; c < dgv.Columns.Count; c++)
                {
                    cell = row.CreateCell(c);
                    if (dgv[c,r].Value !=null)
                        cell.SetCellValue(dgv[c,r].Value.ToString());
                }
            }
            r = 0;
            FileStream file=null;
            try
            {
                file = new FileStream(filePath, FileMode.Create);
                hssfworkbook.Write(file);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                r = 1;
            }
            finally
            {
                if (file !=null)
                    file.Close();
            }
            return r;
        }






NPOI2.1.1简单使用

标签:

原文地址:http://blog.csdn.net/yao_guet/article/details/45277687

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!