Asp.Net使用Npoi导入导出Excel的方法
asp.net针对Excel文件的导入与导出是非常常见的功能之一。本文实例讲述了Asp.Net使用Npoi导入导出Excel的方法。分享给大家供大家参考之用。具体方法如下:
在使用Npoi导出Excel的时候,服务器可以不装任何office组件,一般在导出时用到Npoi导出Excel文件,所导Excel也符合规范,打开时也不会有任何文件损坏之类的提示。但是在做导入时还是使用OleDb的方式,这种方式的导入在服务器端似乎还是需要装office组件的。
一、Npoi导出/下载Excel
具体功能代码如下:
publicvoidNpoiExcel(DataTabledt,stringtitle)
{
NPOI.HSSF.UserModel.HSSFWorkbookbook=newNPOI.HSSF.UserModel.HSSFWorkbook();
NPOI.SS.UserModel.ISheetsheet=book.CreateSheet("Sheet1");
NPOI.SS.UserModel.IRowheaderrow=sheet.CreateRow(0);
ICellStylestyle=book.CreateCellStyle();
style.Alignment=HorizontalAlignment.Center;
style.VerticalAlignment=VerticalAlignment.Center;
for(inti=0;i<dt.Columns.Count;i++)
{
ICellcell=headerrow.CreateCell(i);
cell.CellStyle=style;
cell.SetCellValue(dt.Columns[i].ColumnName);
}
MemoryStreamms=newMemoryStream();
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();
}
二、Asp.Net导入Excel
导入仍然是用OleDb这种方式,感兴趣的朋友可以尝试一下其他方法。
具体功能代码如下:
///<summary>
///连接Excel读取Excel数据并返回DataSet数据集合
///</summary>
///<paramname="filepath">Excel服务器路径</param>
///<paramname="tableName">Excel表名称</param>
///<returns></returns>
publicstaticSystem.Data.DataSetExcelSqlConnection(stringfilepath,stringtableName)
{
stringstrCon="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filepath+";ExtendedProperties='Excel8.0;HDR=YES;IMEX=1'";
OleDbConnectionExcelConn=newOleDbConnection(strCon);
try
{
stringstrCom=string.Format("SELECT*FROM[Sheet1$]");
ExcelConn.Open();
OleDbDataAdaptermyCommand=newOleDbDataAdapter(strCom,ExcelConn);
DataSetds=newDataSet();
myCommand.Fill(ds,"["+tableName+"$]");
ExcelConn.Close();
returnds;
}
catch
{
ExcelConn.Close();
returnnull;
}
}
相信本文所述对大家的asp.net程序设计有一定的借鉴价值。