NOPI组件的使用

NOPI是一个导入导出的组件,功能十分强大,相对于使用Microsoft Jet OLE DB Provider引擎来实现导出,部署环境必须安装具体的引擎才能使用,

对于NOPI的更多信息可以看http://msdn.microsoft.com/zh-tw/ee818993.aspx里面的描述。

下面就讲下具体的基本用法,

 string fileName = "测试"; 
 DataSet dt = OrderManager.FinanceExport();
 
 HSSFWorkbook workbook = new HSSFWorkbook();
 MemoryStream ms = new MemoryStream();
 
 //创建一个名称为Payment的工作表
 ISheet paymentSheet = workbook.CreateSheet("Payment");

 //数据源
 DataTable tbPayment = dt.Tables[0];

 //头部标题
 IRow paymentHeaderRow = paymentSheet.CreateRow(0);

 //循环添加标题
 foreach (DataColumn column in tbPayment.Columns)
      paymentHeaderRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);

 // 内容
 int paymentRowIndex = 1;

 foreach (DataRow row in tbPayment.Rows)
 {
      IRow newRow = paymentSheet.CreateRow(paymentRowIndex);
           
      //循环添加列的对应内容
      foreach (DataColumn column in tbPayment.Columns)
      {
                newRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
      }

      paymentRowIndex++;
  }

  workbook.Write(ms);
  Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", fileName));
  Response.BinaryWrite(ms.ToArray());

  workbook = null;
  ms.Close();
  ms.Dispose();

  至于更多用法就看个人需求了,自己研究,可以实现自定义列大小,列格式,样式等等强大的功能,NOPI官网也有相应的例子可以自己查看。

posted @ 2012-08-14 16:29  厦门_成  阅读(973)  评论(0编辑  收藏  举报