![]() |
【转帖】在autocad中动态读取excel数据(c#) - 精华帖集合
在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 |
所有的时间均为北京时间。 现在的时间是 04:30 AM. |