asp.Net Excelファイルを読み込む2つの方法、NPOI方法
4226 ワード
~_~つのプログラマーの宝を洗う店:クリックしてリンクを開けます
1つ目の方法:従来の方法では、OleDBでEXCELファイルを読み込み、
利点:書き方が簡単で、欠点:サーバはこのコンポーネントをインストールして使用しなければならないので、推奨しません.
第2の方法:サードパーティ製コンポーネント:NPOIコンポーネントを使用して、この方法を推奨します.
まず公式サイトに行きます.http://npoi.codeplex.com/ダウンロードにはdll(.net 2.0または.net 4.0のdllを選択可能)を導入し、Webサイトに参照を追加する必要があります.
NPOIはPOIプロジェクトです.NETバージョン.POIはオープンソースのJava読み書きExcel、WORDなどのマイクロソフトOLE 2コンポーネントドキュメントのプロジェクトです.
NPOIを使用すると、Officeまたは対応する環境がインストールされていないマシンでWORD/EXCELドキュメントを読み書きできます.
NPOIはApache 2.0ライセンス(poiもこのライセンスを採用しています)を採用しています.これは、ビジネスや非ビジネスプロジェクトに使用できることを意味しています.それを使用するために自分のソースコードを開放しなければならない心配はありません.そのため、ビジネスシステムの開発に従事する多くの会社にとって絶対に良い選択です.
もちろん、オープンソースライセンスとして、システムでNPOIを使用する場合は、NPOIのすべての宣言情報を保持する必要があります.ソースコードの変更については、明確な識別が必要です.
1つ目の方法:従来の方法では、OleDBでEXCELファイルを読み込み、
利点:書き方が簡単で、欠点:サーバはこのコンポーネントをインストールして使用しなければならないので、推奨しません.
private DataSet GetConnect_DataSet2(string fileName)
{
DataSet myDataSet = new DataSet();
//
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = " SELECT * FROM [Sheet1$] ";
//try
//{
myConn.Open();
// ,
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
// DataSet
myDataSet = new DataSet();
// DataSet
myCommand.Fill(myDataSet, "CodeTable");
//
myConn.Close();
//}
//catch (Exception ex)
//{
//}
return myDataSet;
}
第2の方法:サードパーティ製コンポーネント:NPOIコンポーネントを使用して、この方法を推奨します.
まず公式サイトに行きます.http://npoi.codeplex.com/ダウンロードにはdll(.net 2.0または.net 4.0のdllを選択可能)を導入し、Webサイトに参照を追加する必要があります.
NPOIはPOIプロジェクトです.NETバージョン.POIはオープンソースのJava読み書きExcel、WORDなどのマイクロソフトOLE 2コンポーネントドキュメントのプロジェクトです.
NPOIを使用すると、Officeまたは対応する環境がインストールされていないマシンでWORD/EXCELドキュメントを読み書きできます.
NPOIはApache 2.0ライセンス(poiもこのライセンスを採用しています)を採用しています.これは、ビジネスや非ビジネスプロジェクトに使用できることを意味しています.それを使用するために自分のソースコードを開放しなければならない心配はありません.そのため、ビジネスシステムの開発に従事する多くの会社にとって絶対に良い選択です.
もちろん、オープンソースライセンスとして、システムでNPOIを使用する場合は、NPOIのすべての宣言情報を保持する必要があります.ソースコードの変更については、明確な識別が必要です.
//config Excel
static object basePath = ConfigurationManager.AppSettings["FilePath"];
#region Excel
/// <summary>
/// Excel table
/// </summary>
/// <param name="filePath">excel </param>
/// <returns></returns>
public static DataTable ReadExcel(string fileName)
{
DataTable dt = new DataTable();
string filePath = "";
if (basePath != null)
{
filePath = HostingEnvironment.MapPath((basePath.ToString() + fileName));
dt = ImportExcelFile(filePath);
}
//
if (System.IO.File.Exists(filePath))
{
}
return dt;
}
public static DataTable ImportExcelFile(string filePath)
{
HSSFWorkbook hssfworkbook;
#region//
try
{
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
}
catch (Exception e)
{
throw e;
}
#endregion
NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0);
System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
DataTable dt = new DataTable();
rows.MoveNext();
HSSFRow row = (HSSFRow)rows.Current;
for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)
{
//dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());
//
dt.Columns.Add(row.GetCell(j).ToString ());
}
while (rows.MoveNext())
{
row = (HSSFRow)rows.Current;
DataRow dr = dt.NewRow();
for (int i = 0; i < row.LastCellNum; i++)
{
NPOI.SS.UserModel.ICell cell = row.GetCell(i);
if (cell == null)
{
dr[i] = null;
}
else
{
dr[i] = cell.ToString();
}
}
dt.Rows.Add(dr);
}
return dt;
}
#endregion