using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using NPOI.HSSF.UserModel;
using NPOI.HPSF;
using NPOI.HSSF;
using NPOI.POIFS.FileSystem;
using System.Data;
using NPOI.SS.UserModel;
public partial class UploadExcelFileToData : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//將使用者上傳的檔案,放在d:\temp\upload\檔名.XLS
string savePath = @"d:\temp\upload\";
if (FileUpload1.HasFile)
{
string filename = FileUpload1.FileName;
savePath += filename;
FileUpload1.SaveAs(savePath);
Label1.Text = "上傳成功";
try
{
//建立HSSFWORKBOOK 活頁簿
HSSFWorkbook myWorkbook = new HSSFWorkbook(FileUpload1.FileContent);
//建立HSSFSHEET 工作表
ISheet mySheet = myWorkbook.GetSheetAt(0);
//建立DATATABLE
DataTable myDT = new DataTable();
//抓取MYSHEET工作表中的標題欄位,並存入DATATABLE
HSSFRow headerRow = mySheet.GetRow(0) as HSSFRow;
for (int i = headerRow.FirstCellNum; i < headerRow.LastCellNum; i++)
{
if (headerRow.GetCell(i) != null)
{
DataColumn myColumn = new DataColumn(headerRow.GetCell(i).StringCellValue);
myDT.Columns.Add(myColumn);
}
}
//抓取HSSFSHEET第一列以後的所有資料,並存入DATATABLE中
for (int i = mySheet.FirstRowNum + 1; i < mySheet.LastRowNum; i++)
{
HSSFRow row = mySheet.GetRow(i) as HSSFRow;
DataRow myRow = myDT.NewRow();
for (int j = row.FirstCellNum; j < row.LastCellNum; j++)
{
if (row.GetCell(j) != null)
{
myRow[j] = row.GetCell(j).ToString();
}
}
myDT.Rows.Add(myRow);
}
//釋放活頁簿、工作表資源
myWorkbook = null;
mySheet = null;
DataView myView = new DataView(myDT);
GridView1.DataSource = myDT;
GridView1.DataBind();
}
catch (Exception ex)
{
Response.Write("thie Error Message---" + ex.ToString());
}
}
else
{
Label1.Text = "請先挑選檔安之後,再來上傳";
}
}
}