C#でExcelファイルを読みたいです。読書中に次のものを使用したくありません。
- サードパーティの dll (クライアントがサードパーティの dll の使用を許可していません)
- SDK(上記と同じ理由でダウンロード不可)
- ターゲット サーバーに Office がインストールされていないため、interop/oledb の使用は許可されていません。
- OpenXml
注: vs 2005 を使用しています。
他に何かあれば教えてください>>
前もって感謝します、サンジェイ
C#でExcelファイルを読みたいです。読書中に次のものを使用したくありません。
注: vs 2005 を使用しています。
他に何かあれば教えてください>>
前もって感謝します、サンジェイ
コメントで述べたように、OleDb の使用は Interop と同じではありません。
OleDb は NET フレームワークの一部であり、顧客がアプリケーションを使用する場合、フレームワークは既にインストールされ、実行されています。したがって、この例は、Office がインストールされていなくても、OleDb がターゲットの Excel ファイルを読み取ることができるという事実を示すのに役立ちます。
この例では、3 つの列 (および最初の行にヘッダー) を持つ単純なワークシートがあります。1 番目と 2 番目の列は単純なテキスト列で、3 番目の列には数値が含まれています。
try
{
string con = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;Extended Properties='Excel 8.0;HDR=Yes;'";
using(OleDbConnection connectin = new System.Data.OleDb.OleDbConnection(con));
{
connectin.Open();
OleDbCommand command = new System.Data.OleDb.OleDbCommand("select * from [Sheet1$]", connectin);
using(System.Data.OleDb.OleDbDataReader dr = command.ExecuteReader())
{
while (dr.Read)
{
if(dr.HasRows)
{
Console.Write(dr[0].ToString() + " ");
Console.Write(dr[1].ToString() + " ");
Console.WriteLine(Convert.ToInt32(dr[2]));
}
}
}
}
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}