ExcelのスプレッドシートをRevitのWindowsフォーム上のテーブルとして表示しようとしています 最初にVisualStudioでコードを書いて、 (Iパスと枚数を入力すること)とすることを実行することによって、それがWindowsフォームを開き、番組表形式でデータをエクセル 'Excel情報を表示する方法RevitからRevit APIおよびWindowsフォームをVisual Studioで表示する
名前空間ShowDataWindowsForm { 公共部分クラスをForm1:フォーム { パブリックForm1の() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
{
string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
textBoxPath.Text + ";Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM
[" + textBoxSheet.Text + "$]", conn);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
}
は、それから私は、外部コマンドを作成し、そのためのWindowsフォームを追加し、まったく同じプロセスをしたが、これは外部コマンドのコードです:
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.ReadOnly)]
パブリッククラスiShowDataWindowsForm:IExternalCommand { 静的なAddInId appId =新しいAddInId(新しいGUID( "DB98294F-89D9-4EAE-A990-63A0694F91CC")); 公共の結果実行(ExternalCommandData commandData、REF文字列メッセージ、ELEMENTSET ELEMENTSET) は{
using (Form1 thisform = new Form1())
{
thisform.ShowDialog();
}
return Result.Succeeded;
}
私はRevitのを開いて、プラグインを実行したときに私の問題があるが、それはWindowsフォームを開き、Visual Studioでのような、Iパスとシート番号を入力しますが、[表示]ボタンをクリックすると、Revitがクラッシュして閉じます。 誰かが私を助けることができれば感謝します。 この写真はVisual Studioでの動作を示していますが、Revitではクラッシュします。 See picture
私はちょうど今、それだけのVisual Studioで表示する下をクリックして働いて、コード自体にパスし、シート番号を入れて、しかし、まだWindowsフォーム用のRevit 最終的なコードでクラッシュしません: `名前空間ExcelVisualStudio {パブリック部分クラスをForm1:フォーム {公共のForm1(){ のInitializeComponent(); }
private void button1_Click(object sender, EventArgs e)
{
string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\farshidmoosavi\Desktop\Schedule3.xls" + ";Extended Properties=Excel 12.0;";
OleDbConnection conn = new OleDbConnection(PathConn);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("SELECT * FROM [" + "Sheet1" + "$]", conn);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
}
} ` 私は、コードをデバッグし、私はこれがクラッシュするプログラムを引き起こし誤りであることが判明:非ユーザーコード「たSystem.Data.Common.DbDataAdapter上ステッピング:へ ステップ。'Revit.exe'(Managed(v4.0.30319)): 'C:\ windows \ Microsoft.Net \ assembly \ GAC_64 \ System.Transactions \ v4.0_4.0.0.0__b77a5c561934e089 \ System.Transactions.dll' 、読み込み中のシンボルをスキップしました。モジュールが最適化され、デバッガのオプション「Just My Code」が有効になります。 例外がスローされました:System.Data.dll内の 'System.AccessViolationException' プログラム '[168] Revit.exe:Managed(v4.0.30319)'がコード-1073741819(0xc0000005) 'アクセス違反'で終了しました。
まだ修正方法がわかりません。