在autocad中动态读取excel数据(c#) - 精华帖集合
www.dimcax.com
在autocad中动态读取excel数据(c#)
在autocad中动态读取excel数据(c#) 下面的代码演示了如何连接excel文件,并读入相关的数据来更改圆的大小。
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();
}
}
}
}
复制代码
呵呵,圆的半径变成了excel文件中对应的数据。
另,才鸟能不能开一个新贴,讲一下如何自定义控件,谢谢。
自定义控件可以放在界面编程里面,我会发相关的帖子。
c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。
copysourceashtml 2.0.0
还是不太明白
楼主的代码是在那个程序里面运行的啊
小人不才,请教楼主!!!
1