我想在Revit中的Windows窗體上顯示一個Excel電子表格, 首先我在VisualStudio中編寫代碼,我創建了一個windows窗體(即我輸入路徑和片數),並且通過運行時,它打開窗形式和節目表格式Excel數據`如何在Revit中通過Revit API和Visual Studio中的窗體顯示Excel信息
命名空間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;
}
}
然後創建的外部命令,添加了一個視窗形式並做完全相同的過程,而這是外部命令的代碼:
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.ReadOnly)]
公共類iShowDataWindowsForm:IExternalCommand { 靜態AddInId APPID =新AddInId(新的GUID( 「DB98294F-89D9-4EAE-A990-63A0694F91CC」)); 公開結果執行(ExternalCommandData commandData,裁判字符串消息,ELEMENTSET ELEMENTSET) {
using (Form1 thisform = new Form1())
{
thisform.ShowDialog();
}
return Result.Succeeded;
}
我的問題是,當我打開Revit和運行插件,它會打開一個窗口形式像在Visual Studio中,我輸入路徑和圖紙編號,但點擊顯示按鈕後,Revit會崩潰並關閉。 我很感激任何人都可以幫助我。 此圖顯示了它在Visual Studio中的工作方式,但在修復中會崩潰。 See picture
我只是把路徑和紙張編號代碼本身,現在它的工作由剛上顯示底部單擊在Visual Studio中,但仍然沒有崩潰的Windows窗體的Revit 最終代碼:`命名空間ExcelVisualStudio { Public partial class Form1:Form { public 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'(管理(v4.0.30319)):加載 'C:\ Windows \ Microsoft.Net \組件\ 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:託管(v4.0.30319)' 已經退出,代碼-1073741819(0000005) '訪問衝突'。
仍然不知道如何解決。