Excelのスプレッドシートでビジネスロジックにアクセスしようとすると、C#(Visual Studio 2008)を使用しています。別のC#プロジェクトでExcelリソースにアクセスする
私は以下のクラスを持っている...(私はこの間違ったをやっている場合は批判して自由に感じる - 私は、通常のJava開発者です - 。これが私の最初のC#アプリケーションである)
public class SpreadSheetClass
{
// apologies for any typo's code written in place, not copied from an IDE...
//
public DataTable DoIt()
{
DataTable result;
String sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MySpreadsheet.xls;Extended Properties=Excel 8.0;";
OleDbConnection connection = new OleDbConnection(sConnection);
try
{
connection.Open();
OleDbCommand oleDbcCommand = new OleDbCommand("SELECT * FROM SELECTION", connection);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = oleDbcCommand;
result = new DataTable();
dataAdapter.Fill(result);
}
finally
{
connection.Close();
}
return result;
}
}
私はにスプレッドシートを追加Add - > Existing Item - > .xlsファイルを選択してプロジェクトを作成します。次に、ファイルのプロパティを編集して埋め込みリソースであり、出力ディレクトリに常にコピーするようにしました。
プロジェクト内からスプレッドシートを正常にアクセスできます。
「試験方法TestProject1.UnitTest1.TestMethod1が例外を投げた:
はしかし、私は、私は次の例外を取得し、テストプロジェクトから、たとえばプロジェクトの外部からドイト方法を、実行したいSystem.Dataを。 OleDb.OleDbException:Microsoft Jetデータベースエンジンが 'SELECTION'オブジェクトを見つけられませんでした。オブジェクトが存在し、名前とパス名のスペルが正しいことを確認してください.. "
私の問題は別のプロジェクトのリソースにアクセスするクラスを呼び出す
ヘルプ! .NETで