NPOI导入导出Excel (2)

简单演示一下创建一个Workbook对象,添加一个工作表,在工作表中添加一行一列:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Data;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
MemoryStream ms = RenderToExcel(GetTable());
string fileName = @"c:\2.xls";
SaveToFile(ms, fileName);
Response.Write("成功");
}
public MemoryStream RenderToExcel(DataTable table)
{
MemoryStream ms = new MemoryStream();

using (table)
{
IWorkbook workbook = new HSSFWorkbook();

ISheet sheet = workbook.CreateSheet();

IRow headerRow = sheet.CreateRow(0);

// handling header.
foreach (DataColumn column in table.Columns)
headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);//If Caption not set, returns the ColumnName value

// handling value.
int rowIndex = 1;

foreach (DataRow row in table.Rows)
{
IRow dataRow = sheet.CreateRow(rowIndex);

foreach (DataColumn column in table.Columns)
{
dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
}

rowIndex++;
}

workbook.Write(ms);
ms.Flush();
ms.Position = 0;
}

return ms;
}
private void SaveToFile(MemoryStream ms, string fileName)
{
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write))
{
byte[] data = ms.ToArray();

fs.Write(data, 0, data.Length);
fs.Flush();

data = null;
}
}
private DataTable GetTable()
{
SqlHelperXhf xhf = new SqlHelperXhf();
string sql = "select calling_no ‘电话号码‘,starttime ‘时间‘ ,hname ‘楼盘名称‘ from [fc_freetel] a where hname<>‘无‘and a.id = (select min(id) from fc_freetel where calling_no=a.calling_no) order by hname,starttime desc";

return xhf.ExecuteDataTable(sql);

}
private DataTable GetTable(int hid)
{
SqlHelperXhf xhf = new SqlHelperXhf();
string sql = "select calling_no ‘电话号码‘,starttime ‘时间‘ ,hname ‘楼盘名称‘ from [fc_freetel] a where [email protected] and a.id = (select min(id) from fc_freetel where calling_no=a.calling_no) order by hname,starttime desc";
SqlParameter paramer = new SqlParameter("@hid", hid);
return xhf.ExecuteDataTable(sql,paramer);

}
private DataTable GetTable(int hid1,int hid2,int hid3)
{
SqlHelperXhf xhf = new SqlHelperXhf();
string sql = "select calling_no ‘电话号码‘,starttime ‘时间‘ ,hname ‘楼盘名称‘ from [fc_freetel] a where [email protected] or [email protected] or [email protected] and a.id = (select min(id) from fc_freetel where calling_no=a.calling_no) order by hname,starttime desc";
SqlParameter [] paramers =
{
new SqlParameter("@hid1", hid1),
new SqlParameter("@hid2", hid2),
new SqlParameter("@hid3", hid3)
};
return xhf.ExecuteDataTable(sql, paramers);

}
}

简单演示一下创建一个Workbook对象,添加一个工作表,在工作表中添加一行一列:

using NPOI.HSSF.UserModel;

using NPOI.SS.UserModel;

public class NPOIWrite

{

    void CreateSheet()

    {

        IWorkbook workbook = new HSSFWorkbook();//创建Workbook对象

        ISheet sheet = workbook.CreateSheet("Sheet1");//创建工作表

        IRow row = sheet.CreateRow(0);//在工作表中添加一行

        ICell cell = row.CreateCell(0);//在行中添加一列

        cell.SetCellValue("test");//设置列的内容

    }

}

相应的读取代码:

using System.IO;

using NPOI.HSSF.UserModel;

using NPOI.SS.UserModel;

public class NPOIRead

{

    void GetSheet(Stream stream)

    {

        IWorkbook workbook = new HSSFWorkbook(stream);//从流内容创建Workbook对象

        ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作表

        IRow row = sheet.GetRow(0);//获取工作表第一行

        ICell cell = row.GetCell(0);//获取行的第一列

        string value = cell.ToString();//获取列的值

    }

}

使用NPOI导出

从DataTable读取内容来创建Workbook对象:

public static MemoryStream RenderToExcel(DataTable table)

{

    MemoryStream ms = new MemoryStream();

    using (table)

    {

        using (IWorkbook workbook = new HSSFWorkbook())

        {

            using (ISheet sheet = workbook.CreateSheet())

            {

                IRow headerRow = sheet.CreateRow(0);

                // handling header.

                foreach (DataColumn column in table.Columns)

                    headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);//If Caption not set, returns the ColumnName value

                // handling value.

                int rowIndex = 1;

                foreach (DataRow row in table.Rows)

                {

                    IRow dataRow = sheet.CreateRow(rowIndex);

                    foreach (DataColumn column in table.Columns)

                    {

                        dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());

                    }

                    rowIndex++;

                }

                workbook.Write(ms);

                ms.Flush();

                ms.Position = 0;

            }

        }

    }

    return ms;

}

时间: 2024-07-28 20:20:12

NPOI导入导出Excel (2)的相关文章

NPOI导入导出Excel

.net mvc利用NPOI导入导出excel 1.导出Excel :首先引用NPOI包,从这里下载>download(Action一定要用FileResult) /// <summary> /// 批量导出需要导出的列表 /// </summary> /// <returns></returns> public FileResult ExportStu2() { //获取list数据 var checkList = (from oc in db.Or

.net mvc利用NPOI导入导出excel

1.导出Excel : 首先引用NPOI包,从这里下载>download (Action一定要用FileResult) /// <summary> /// 批量导出需要导出的列表 /// </summary> /// <returns></returns> public FileResult ExportStu2() { //获取list数据 var checkList = (from oc in db.OrganizeCustoms join o i

Excel操作--使用NPOI导入导出Excel为DataTable

1.ExcelHelper封装 1 namespace NPOI操作Excel 2 { 3 public class ExcelHelper 4 { 5 /// <summary> 6 /// DataTable转成Excel,返回一个文件流 7 /// </summary> 8 /// <param name="dataTable"></param> 9 /// <returns></returns> 10 pu

winfrom 使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中

1.通过NUGET管理器下载nopi,在引入命令空间 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using NPOI.SS.UserModel; //NPOI 6 using NPOI.HSSF.Util; //NPOI 7 using NPOI.HSSF.UserModel; //NPOI 8 using NPOI.XSSF.UserModel; /

npoi导入导出excel (泛型)

最近新项目开始了,万能的excel又要上台工作.对于导出代码网上的确很多,合适的没有找到. 我们这边使用的ef + dapper 两套orm框架,他们有一个共同点,都是操作实体对象的.所以导出不能用万能的DataTable了.后面花了一些时间,集合众仙所长,写了一套单excel导入导出的方式.数据源为List<T> public class Excel { /// <summary> /// 导出到sheet中 /// </summary> /// <typepa

ASP.Net MVC利用NPOI导入导出Excel

因近期项目遇到所以记录一下: 1.导出Excel 首先引用NPOI包 (NPOI自行搜索下载) (Action一定要用FileResult) 1 [Localization] 2 /// <summary> 3 /// 导出Table的数据 4 /// </summary> 5 /// <returns></returns> 6 public FileResult ExportExcel() 7 { 8 //string schoolname = "

&lt;转&gt;Npoi导入导出Excel操作&lt;载&gt;

1 //Datatable导出Excel 2 private static void GridToExcelByNPOI(DataTable dt, string strExcelFileName) 3 { 4 try 5 { 6 HSSFWorkbook workbook = new HSSFWorkbook(); 7 ISheet sheet = workbook.CreateSheet("Sheet1"); 8 9 ICellStyle HeadercellStyle = wor

NPOI 导入导出excel 支持 03 07

因为微软的office成本太高了,所以开发项目的时候电脑上没安装office,而是安装了wps.但开发语言用的是C#,所以直接调用微软的office组件是很方便的,但一方面慢,一方面成本高,所以从网上找到了NPOI这个开源的项目.http://npoi.codeplex.com/,引用的dll下载目录 http://npoi.codeplex.com/downloads/get/1476595 并且封装了通用的处理EXCEL 跟DataSet,DataTable的方法.方便调用 以上是代码 (当

简单回顾NPOI导入导出excel文件

当前环境.net4.0 去官方下下载:  NOPI官网 关于NOPI的详细,这里就不再介绍. 在项目中,我们只需引入  NPOI.dll  就可以了. 接下来................................................................ 上代码......... .......................................................... /// <summary> /// 导出 /// </sum