Asp.Net使用Npoi导入导出Excel的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使⽤Npoi导⼊导出Excel的⽅法
针对Excel⽂件的导⼊与导出是⾮常常见的功能之⼀。

本⽂实例讲述了使⽤Npoi导⼊导出Excel的⽅法。

分享给⼤家供⼤家参考之⽤。

具体⽅法如下:
在使⽤Npoi导出Excel的时候,服务器可以不装任何office组件,⼀般在导出时⽤到Npoi导出Excel⽂件,所导Excel也符合规范,打开时也不会有任何⽂件损坏之类的提⽰。

但是在做导⼊时还是使⽤OleDb的⽅式,这种⽅式的导⼊在服务器端似乎还是需要装office组件的。

⼀、Npoi导出/下载Excel
具体功能代码如下:
public void NpoiExcel(DataTable dt, string title)
{
erModel.HSSFWorkbook book = new erModel.HSSFWorkbook();
erModel.ISheet sheet = book.CreateSheet("Sheet1");
erModel.IRow headerrow = sheet.CreateRow(0);
ICellStyle style = book.CreateCellStyle();
style.Alignment = HorizontalAlignment.Center;
style.VerticalAlignment = VerticalAlignment.Center;
for (int i = 0; i < dt.Columns.Count; i++)
{
ICell cell = headerrow.CreateCell(i);
cell.CellStyle = style;
cell.SetCellValue(dt.Columns[i].ColumnName);
}
MemoryStream ms = new MemoryStream();
book.Write(ms);
Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode(title + "_" + DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8))); Response.BinaryWrite(ms.ToArray());
Response.End();
book = null;
ms.Close();
ms.Dispose();
}
⼆、导⼊Excel
导⼊仍然是⽤OleDb这种⽅式,感兴趣的朋友可以尝试⼀下其他⽅法。

具体功能代码如下:
/// <summary>
/// 连接Excel 读取Excel数据并返回DataSet数据集合
/// </summary>
/// <param name="filepath">Excel服务器路径</param>
/// <param name="tableName">Excel表名称</param>
/// <returns></returns>
public static System.Data.DataSet ExcelSqlConnection(string filepath, string tableName)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'";
OleDbConnection ExcelConn = new OleDbConnection(strCon);
try
{
string strCom = string.Format("SELECT * FROM [Sheet1$]");
ExcelConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, ExcelConn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "[" + tableName + "$]");
ExcelConn.Close();
return ds;
}
catch
{
ExcelConn.Close();
return null;
}
}
相信本⽂所述对⼤家的程序设计有⼀定的借鉴价值。

相关文档
最新文档