马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[C#] 纯文本查看 复制代码
using System;
using Autodesk.AutoCAD.Runtime;
using System.Data.OleDb;
using System.Data;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
namespace ClassLibrary
{
public class arxClass
{
[CommandMethod("Test")]
static public void test()
{
string filePath = "C:\\test.xls";//Excel文件名
//Excel连接字符串
string mystring = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" + filePath + "';Extended Properties=Excel 8.0";
OleDbConnection cnnxls = new OleDbConnection(mystring);
//选择test.xls中的Sheet1表格,请注意在表格名最后加上$符号
OleDbDataAdapter myDa = new OleDbDataAdapter("select * from [Sheet1$]", cnnxls);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
System.Data.DataTable table = myDs.Tables[0];//获取Sheet1表格所对应的DataTable对象,这样才能进行相关的操作
//选取Sheet表格中第二行第一列的数据(请注意,DataTable对象认为Excel表格的第一行为表格的标题)
double radius = Convert.ToDouble(table.Rows[0][0]);
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ObjectId id = ed.GetEntity("select circle").ObjectId;
Database db=HostApplicationServices.WorkingDatabase;
using (Transaction trans=db.TransactionManager.StartTransaction())
{
Circle cir = (Circle)trans.GetObject(id, OpenMode.ForWrite);
cir.Radius = radius;
trans.Commit();
}
}
}
}
下面是vb.net
[Visual Basic .NET] 纯文本查看 复制代码 Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
Imports System.Data.OleDb
Public Class Class1
<CommandMethod("test")>
Public Sub test()
'Excel文件名
Dim filePath As String = "C:\test.xls"
'Excel连接字符串
Dim mystring As String = "rovider = Microsoft.Jet.OLEDB.4.0 ; Data Source = '" & filePath & "';Extended Properties=Excel 8.0"
Dim cnnxls As OleDbConnection = New OleDbConnection(mystring)
'选择test.xls中的Sheet1表格,请注意在表格名最后加上$符号
Dim myDa As OleDbDataAdapter = New OleDbDataAdapter("select * from [Sheet1$]", cnnxls)
Dim myDs As DataSet = New DataSet()
myDa.Fill(myDs)
'获取Sheet1表格所对应的DataTable对象,这样才能进行相关的操作
Dim table As System.Data.DataTable = myDs.Tables(0)
'选取Sheet表格中第二行第一列的数据(请注意,DataTable对象认为Excel表格的第一行为表格的标题,必须有内容,不能空白)
Dim radius As Double = Convert.ToDouble(table.Rows(0)(0))
Dim db As Database = HostApplicationServices.WorkingDatabase
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
Dim id As ObjectId = ed.GetEntity("请选择一个圆:").ObjectId
Using trans As Transaction = db.TransactionManager.StartTransaction
Dim cir As Circle = trans.GetObject(id, OpenMode.ForWrite)
cir.Radius = radius
trans.Commit()
End Using
End Sub
End Class
|