excel学习库

excel表格_excel函数公式大全_execl从入门到精通

(NOPI)在不安装Office的情况下导出excel

数据库在服务器上,不想在服务器上装office,这个时候可以用nopi操作excel,本例先说明一下如何在在不安装Office的情况下将数据导出excel

本例需要导入NPOI.dll和NPOI.OOXML.dll,没有的可以联系我

具体代码:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Data;
using System.IO;

namespace DT2Excel
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//从数据库中或者其它地方得到数据放入dt中
DataTable dt = GetdataFromDB("select * from users");

//导出EXCEL
string r = DT2Excel("D:\\2.xlsx", mydt, "PP2", true);
}

/// <summary>
/// 将DataTable数据导出到excel中
/// <para>--------------说明------------------</para>
/// <para>string r = DT2Excel("D:\\2.xlsx",(DataTable)dataGridView1.DataSource, "PP2", true);</para>
/// <para>------------------------------------</para>
/// </summary>
/// <param name="_ExcelFileName">Excel路径</param>
/// <param name="_dt">DataTable</param>
/// /// <param name="_SheetName">Sheet名称,默认时写""</param>
/// <param name="_WithDtColumnName">是否导出DataTable的列名到Excel中</param>
/// <returns></returns>
public string DT2Excel(string _ExcelFileName, DataTable _dt, string _SheetName, bool _WithDtColumnName)
{
IWorkbook workbook = null;
FileStream fs = null;

int i = 0;
int j = 0;
int count = 0;
ISheet sheet = null;

fs = new FileStream(_ExcelFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
//if (_ExcelFileName.IndexOf(".xlsx") > 0) // 2007版本
// workbook = new XSSFWorkbook();
//else if (_ExcelFileName.IndexOf(".xls") > 0) // 2003版本
// workbook = new HSSFWorkbook();
workbook = new XSSFWorkbook();
try
{
if (_SheetName == "") { _SheetName = "Sheet1"; }
sheet = workbook.CreateSheet(_SheetName);

if (_WithDtColumnName == true) //写入DataTable的列名
{
IRow row = sheet.CreateRow(0);
for (j = 0; j < _dt.Columns.Count; ++j)
{
row.CreateCell(j).SetCellValue(_dt.Columns[j].ColumnName);
}
count = 1;
}
else
{
count = 0;
}

for (i = 0; i < _dt.Rows.Count; ++i)
{
IRow row = sheet.CreateRow(count);
for (j = 0; j < _dt.Columns.Count; ++j)
{
row.CreateCell(j).SetCellValue(_dt.Rows[i][j].ToString());
}
++count;
}
workbook.Write(fs); //写入到excel
return count.ToString();
}
catch (Exception ex)
{
return ex.ToString();
}
}
}
}

使用方法说明:

//先准备一下数据,从数据库中或者其它地方得到数据放到datatalbe中

DataTable dt = GetdataFromDB("select * from users");

//导出EXCEL

string r = DT2Excel("D:\\2.xlsx", mydt, "PP2", true);

参数

1、导出的excel存放目录,如果是web这里的路径需要你自己处理一下怎么弄合适

2、数据datatable的ID

3、导出的excel的sheet的名称

4、导出的excel第一行是否为datatable的列名

通过这个方法最大的好处就是不用装OFFICE就能搞定,下次再研究下其它功能

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接