//Ribbon界面的回调函数,响应事件,将Excel表格数据写入CAD public void OnButton1Pressed(IRibbonControl control) { //选取Excel表格数据 wbk = app.ActiveWorkbook; wsh = (Worksheet)wbk.ActiveSheet; Excel.Range rngLeftTop = null; Excel.Range rngRightButtom = null; rngLeftTop = (Excel.Range)app.InputBox("点击左上角单元格", Type: 8); rngRightButtom = (Excel.Range)app.InputBox("点击右下角单元格", Type: 8); object[,] data = (object[, ])wsh.Range[rngLeftTop.Address + ":" + rngRightButtom.Address].Value2; //把数据导入Access数据库 try { AccessDataBase.WriteDB(data); MessageBox.Show("选定的数据读取完毕,点击确定导入CAD"); } catch (SystemException ex) { MessageBox.Show(ex.ToString()); } //选定的数据读取完毕,点击确定导入CAD if (rngLeftTop != null & rngRightButtom != null) { //打开cad try { AcadApp = (Autodesk.AutoCAD.Interop.AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application"); AcadDoc = AcadApp.ActiveDocument; } catch { OpenFileDialog op = new OpenFileDialog(); op.Filter = "CAD文件(*.dwg)|*.dwg|CAD图形文件(*.dxf)|*.dxf"; op.Title = "打开CAD文件"; op.ShowDialog(); string filePath = op.FileName; if (filePath == "") { MessageBox.Show("选择CAD文件无效!!", "文件无效!!"); } else { AcadApp = new Autodesk.AutoCAD.Interop.AcadApplication(); AcadDoc = AcadApp.Documents.Open(filePath, null, null); } } AcadApp.Application.Visible = true; //使CAD程序跳到在最前面,需要添加引用“Microsoft.VisualBasic” Microsoft.VisualBasic.Interaction.AppActivate(AcadApp.Caption); //让CAD自动执行netload命令加载程序集DLL,如果注册表加载方法无效的话 AcadDoc.SendCommand("(command \"_netload\" \"" + @"C:\\Windows\\System\\xl2cad\\xl2cad.dll" + "\") "); AcadDoc.SendCommand("zdbtext "); } else { MessageBox.Show("没有选择数据!"); } }