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程序设计有一定的借鉴价值。