NPOI 2.0.1.0
純粹要 讀取xlsx 和 xls
加入參考
NPOI.dll
NPOI.OOXML.dll
NPOI.OpenXml4Net.dll
NPOI.OpenXmlFormats.dll
ICSharpCode.SharpZipLib.dll
如果只要讀xls,那只需加NPOI.dll 就好了
如果要讀xlsx,那通通都要加進去
NPOI 函式庫檔案有七個,分別是:
NPOI.DLL:NPOI 核心函式庫。
NPOI.DDF.DLL:NPOI 繪圖區讀寫函式庫。
NPOI.HPSF.DLL:NPOI 文件摘要資訊讀寫函式庫。
NPOI.HSSF.DLL:NPOI Excel BIFF 檔案讀寫函式庫。
NPOI.Util.DLL:NPOI 工具函式庫。
NPOI.POIFS.DLL:NPOI OLE 格式存取函式庫。
ICSharpCode.SharpZipLib.DLL:檔案壓縮函式庫。
code:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
private DataSet mdsExcel;
public void clsNPOI(int iColumn, string sFilePath, string sSheetName, ref TextBox textBox1)
{
try
{
mdsExcel = new DataSet("XLData");
mdsExcel = new DataSet();
mdsExcel.Tables.Add("table");
IWorkbook iworkbook;
using (FileStream file = new FileStream(sFilePath, FileMode.Open, FileAccess.Read))
{
iworkbook = NPOI.SS.UserModel.WorkbookFactory.Create(file);
}
ISheet isheet = (ISheet)iworkbook.GetSheet(sSheetName);
for (int c = 0; c < iColumn; c++)
{
mdsExcel.Tables[0].Columns.Add("");
}
for (int row = 0; row <= isheet.LastRowNum; row++)
{
string[] saryStr = new string[iColumn];
for (int i = 0; i < iColumn; i++)
{
if (isheet.GetRow(row).GetCell(i) != null) //null is when the row only contains empty cells
{
saryStr[i] = isheet.GetRow(row).GetCell(i).StringCellValue;
}
else
{
saryStr[i] = "";
}
}
mdsExcel.Tables[0].Rows.Add(saryStr);
}
iworkbook = null;
//可能發生錯誤的地方
}
catch (Exception ex)
{
textBox1.Text += ex.ToString();
//例外要怎麼處理
}
finally
{
//不論是否產生例外都會執行的地方
}
}//
0 意見:
張貼留言