NPOIExcel

public class NPOIExcel
    {
        private string _title;
        private string _sheetName;
        private string _filePath;

        /// <summary>
        /// 导出到Excel
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public bool ToExcel(DataTable table)
        {
            FileStream fs = new FileStream(this._filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
            IWorkbook workBook = new HSSFWorkbook();
            this._sheetName = this._sheetName.IsEmpty() ? "sheet1" : this._sheetName;
            ISheet sheet = workBook.CreateSheet(this._sheetName);

            //处理表格标题
            IRow row = sheet.CreateRow(0);
            row.CreateCell(0).SetCellValue(this._title);
            sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, table.Columns.Count - 1));
            row.Height = 500;

            ICellStyle cellStyle = workBook.CreateCellStyle();
            IFont font = workBook.CreateFont();
            font.FontName = "微软雅黑";
            font.FontHeightInPoints = 17;
            cellStyle.SetFont(font);
            cellStyle.VerticalAlignment = VerticalAlignment.Center;
            cellStyle.Alignment = HorizontalAlignment.Center;
            row.Cells[0].CellStyle = cellStyle;

            //处理表格列头
            row = sheet.CreateRow(1);
            for (int i = 0; i < table.Columns.Count; i++)
            {
                row.CreateCell(i).SetCellValue(table.Columns[i].ColumnName);
                row.Height = 350;
                sheet.AutoSizeColumn(i);
            }

            //处理数据内容
            for (int i = 0; i < table.Rows.Count; i++)
            {
                row = sheet.CreateRow(2 + i);
                row.Height = 250;
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    row.CreateCell(j).SetCellValue(table.Rows[i][j].ToString());
                    sheet.SetColumnWidth(j, 256 * 15);
                }
            }

            //写入数据流
            workBook.Write(fs);
            fs.Flush();
            fs.Close();

            return true;
        }

        /// <summary>
        /// 导出到Excel
        /// </summary>
        /// <param name="table"></param>
        /// <param name="title"></param>
        /// <param name="sheetName"></param>
        /// <returns></returns>
        public bool ToExcel(DataTable table, string title, string sheetName, string filePath)
        {
            this._title = title;
            this._sheetName = sheetName;
            this._filePath = filePath;
            return ToExcel(table);
        }
    }
时间: 2024-11-03 22:49:49

NPOIExcel的相关文章

NPOI-Excel系列-1002.创建带有Document Summary Information和Summary Information的Excel文件

1. 1 using NPOI.HSSF.UserModel; 2 using NPOI.HPSF; 3 using NPOI.POIFS.FileSystem; 4 using Microsoft.VisualStudio.TestTools.UnitTesting; 5 using System.IO; 6 using System; 7 namespace NPOI.Sample1 8 { 9 /// <summary> 10 /// 创建Excel文件 11 /// </summ

NPOI导出excel(带图片)

近期项目中用到Excel导出功能,之前都是用普通的office组件导出的方法,今天尝试用下NPOI,故作此文以备日后查阅. 1.NPOI官网http://npoi.codeplex.com/,下载最新工具包. 2.选择.net版本(例如dotnet4),引用其中的dll. 3.后台代码 using System; using System.Web; using System.Data; using System.Configuration; using System.IO; using Test

NFine框架JqGrid导出选中行为Excel实现方法

客户端 function PostAndGetFileByUrl(url,type,postdata) { var temp; $.ajax({ url: url, type: type, data: {keyword:postdata}, async: true, dataType: "Text", success: function (data) { downloadFile(data); } }); return temp; } function btn_export() { v

使用NPOI库导入导出EXCEL

一.EXCEL  导入(Excel 导入导出实际项目中会被封装成**Helper 本示例只对简单功能做演示) NPOI 包引用 视图view @{ ViewBag.Title = "NPOIExcel"; } <h2>NPOIExcel</h2> <form action="@Url.Action("NPOIInport", "Home")" method="post" enc

导入导出EXL

/// <summary> /// 导出公用方法 /// </summary> public class ImportBase { /// <summary> /// NOPI控件实现导入数据 /// </summary> /// <param name="FilesName">file上传文件ID</param> /// <returns>DataTable</returns> publi

报表页面设计思路

应用情景: 一.简单型 只有一个数据列表,从数据库读取表数据,在程序端构造DataTable,格式化为中文(同时处理合计结果),前台页面绑定(使用中文字段绑定),后台调用NOPI导出到EXCEL: 二.复杂型 在一的基础上增加: 1.存在多个数据列表(例如:汇总.明细): 2.可按行进行合计: 3.列名可能是动态增加的(例如支付方式:微信.支付宝.现金.刷卡): 解决方案: (一)定义页面全局DataTable private DataTable dtTicketSumReport = new

NPOI帮助类

NPOI操作 public class NPOIExcel { private string _title; private string _sheetName; private string _filePath; /// <summary> /// 导出到Excel /// </summary> /// <param name="table"></param> /// <returns></returns> pu

Asp.Net 使用Npoi导出Excel

引言 使用Npoi导出Excel 服务器可以不装任何office组件,昨天在做一个导出时用到Npoi导出Excel,而且所导Excel也符合规范,打开时不会有任何文件损坏之类的提示.但是在做导入时还是使用OleDb的方式,这种方式的导入在服务器端似乎还是需要装office组件的,有没有不需要装组件并且能照常导入的呢? Npoi导出/下载Excel public void NpoiExcel(DataTable dt, string title) { NPOI.HSSF.UserModel.HSS

服务器读取客户端文件

1 将客户端获取到的文件转换为  文件流 FileStream fsRead = Form.edit.File.OpenRead(); int fsLen = (int)fsRead.Length; byte[] heByte = new byte[fsLen]; int r = fsRead.Read(heByte, 0, heByte.Length); 2 将字节流 传输到 服务器 Convert.ToBase64String(heByte);  // 客户端 将字节转换为字符串  传输到服