明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 11344|回复: 28

[测试]:AutoCAD表格制作工具的接口

  [复制链接]
发表于 2003-9-13 10:43:00 | 显示全部楼层 |阅读模式
该组件可供所有支持ActiveX的编程语言调用,目前仅供测试。部分说明如下:

  1. 1、AddTable
  2. Sub AddTable(ByVal InsertionPoint, ByVal NumRows As Integer, ByVal NumColumns As Integer, [ByVal InsertionDirection As Integer], [RowHeight As Double], [ByVal ColumnWidth As Double])
  3. 创建表格,需指定表格的插入点、行数和列数,以及插入方向、默认的行高和列宽。
  4. 插入方向:1代表从上到下,2代表从下到上。

  5. ETObj.AddTable iPt,3,2,1,8,10
  6. 表示创建一个3行2列的表格,默认方向是从上到下,行高是8,列宽是10。

  7. 2、SelectTable
  8. Sub SetTable(ByVal EntObj As Object)
  9. 选取现有的表格作为当前表格,仅供后续操作之用。
  10. EntObj:表示表格的块引用对象。

  11. ETObj.SetTable EntObj

  12. 3、ConvertExcel
  13. 将Excel中的表格插入到AutoCAD,需指定表格的插入点。
  14. 注:Excel需要先行启动。
  15. Sub ConvertTableFromExcel(ByVal RangeObj As Object, ByVal InsertionPoint, ByVal InsertoinDirection As Integer)
  16. RangeObj:代表Excel表格中要转换的单元格区域对象。
  17. InsertionPoint:代表表格在AutoCAD中的插入点。
  18. InsertoinDirection:代表表格在AutoCAD中的方向。

  19. ETObj.ConvertTableFromExcel xlSheet.Selection,iPt,2
  20. 从Excel中以当前选定的区域插入一个从下到上的表格。

  21. 4、ConvertAutoCAD
  22. 将AutoCAD中的表格插入到Excel。
  23. 注:Excel需要先行启动。
  24. Sub ConvertTableFromAutoCAD(SheetObj As Object)

  25. ETObj.ConvertTableFromExcel xlSheet
  26. 从AutoCAD中转换当前表格到Excel中。

  27. 5、AddColumn
  28. 往当前表格中添加列,需指定列的索引。
  29. 注:列的索引为列插入后的位置。
  30. Sub AddColumn(ByVal Index As Integer)

  31. ETObj.AddColumn 1
  32. 在当前表格中的第一列位置插入一列。

  33. 6、RemoveColumn
  34. 从当前表格中删除列,需指定列的索引。
  35. Sub RemoveColumn(ByVal Index As Integer)

  36. ETObj.RemoveColumn 1
  37. 在当前表格中删除第一列。

  38. 7、SetColumnWidth
  39. 更改当前表格中某一列的列宽,需指定列的索引。
  40. Public Property Width As Variant

  41. ETObj.Range("A:A").Width=20
  42. 在当前表格中将第一列的列宽设置为20mm。

  43. 15、DisplayHeadings
  44. 设置当前表格是否隐藏行号列标
  45. Sub DisplayHeadings(ByVal bShow As Boolean)

  46. ETObj.DisplayHeadings False
  47. 隐藏当前表格的行号列标。

  48. 16、DisplayGridlines
  49. 设置当前表格是否隐藏网格线
  50. Sub DisplayGridlines(ByVal bShow As Boolean)

  51. ETObj.DisplayHeadings False
  52. 隐藏当前表格的网格线。


DLL文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2019-4-30 13:01:48 | 显示全部楼层
多少年前的老贴子,今日有幸拜读,荣幸之至!
作者应该是重新定义一些接口了,虽然没有帮助文档,但顾思义,也能看懂!
发表于 2003-9-13 17:41:00 | 显示全部楼层
真不错,以后的表格程序完全可以抛开EXCEL了。
发表于 2003-9-13 18:03:00 | 显示全部楼层
太好了!
发表于 2003-9-17 14:09:00 | 显示全部楼层
以下程序调用AddTable无任何输出,无任何提示.(AutoCAD2k4,Win2K)


  1. Sub Test()
  2.    Dim NewTable As EFCAD.Table
  3.    Dim InsertP As Variant, RowCount As Integer, ColCount As Integer, TableDir As Integer, _
  4.        RowHeight As Double, ColHeight As Double
  5.       
  6.    With ThisDrawing.Utility
  7.       InsertP = (.GetPoint(, "请输入表格插入点:"))
  8.       'MsgBox InsertP(0) & vbCr & InsertP(1) & vbCr & InsertP(2)
  9.       RowCount = (.GetInteger("请输入表格的行数:"))
  10.       'MsgBox RowCount
  11.       ColCount = (.GetInteger("请输入表格的列数:"))
  12.       'MsgBox ColCount
  13.       TableDir = (.GetInteger("表格的方向(1从上到下,2从下到上):"))
  14.       'MsgBox TableDir
  15.       RowHeight = (.GetDistance(, "请输入行高:"))
  16.       'MsgBox RowHeight
  17.       ColHeight = (.GetDistance(, "请输入列宽:"))
  18.       'MsgBox ColHeight
  19.    End With
  20.    Set NewTable = New EFCAD.Table
  21.    NewTable.AddTable InsertP, RowCount, ColCount , TableDir, RowHeight, ColHeight
  22. End Sub

发表于 2003-9-20 10:26:00 | 显示全部楼层
有人试过吗?
 楼主| 发表于 2003-9-20 20:18:00 | 显示全部楼层
在Set NewTable = New EFCAD.Table之后,使用Set NewTable.Application=Application初始化应用程序对象。
 楼主| 发表于 2003-9-21 14:37:00 | 显示全部楼层
这是一段生成坐标数据输入到表格中的程序。

  1. Dim etObj As EFCAD.Table

  2. '创建表格并选择要输入坐标的对象
  3. Sub test()
  4.     Dim iPt As Variant
  5.     Dim EntObj As AcadEntity
  6.     Dim Pts As Variant
  7.     Dim i As Integer
  8.    
  9.     On Error GoTo ErrTrap
  10.     Set etObj = New EFCAD.Table
  11.     Set etObj.Application = Application
  12.     iPt = etObj.GetPoint(, "指定表格的插入点: ")
  13.     If IsEmpty(iPt) Then Exit Sub
  14.     '在iPt点生成1行3列,方向从上到下的表格,默认行高为5,列宽为30
  15.     etObj.AddTable iPt, 1, 3, 1, 5, 30
  16.     '设置1行1列的值为“角点”,以下同
  17.     etObj.Range("A1").Text = "角点"
  18.     etObj.Range("B1").Text = "X坐标"
  19.     etObj.Range("C1").Text = "Y坐标"
  20.     '设置1行的文字对齐方式为正中对齐
  21.     etObj.Range("A1:C1").Alignment = 5
  22.     Set EntObj = etObj.GetEntity(, "选择对象: ")
  23.     Do While Not (EntObj Is Nothing)
  24.         Pts = EntObj.Coordinates
  25.         For i = 0 To UBound(Pts) Step 2
  26.             '在表格中插入1行
  27.             etObj.AddRow etObj.Rows.Count + 1
  28.             etObj.Cells(etObj.Rows.Count, 1).Text = etObj.Rows.Count - 1
  29.             etObj.Cells(etObj.Rows.Count, 2).Text = Round(Pts(i) + 0.0000000001, 4)
  30.             etObj.Cells(etObj.Rows.Count, 3).Text = Round(Pts(i + 1) + 0.0000000001, 4)
  31.         Next
  32.         Set EntObj = etObj.GetEntity(, "选择对象: ")
  33.     Loop
  34.     etObj.Range("A1:C" & etObj.Rows.Count).Alignment = 5
  35.     ThisDrawing.Regen acActiveViewport
  36.     Set EntObj = Nothing
  37.     Set etObj = Nothing
  38.     Exit Sub
  39.    
  40. ErrTrap:
  41.     On Error GoTo 0
  42. End Sub


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2003-9-24 13:31:00 | 显示全部楼层
请问各位版主,我何时才有浏览精华帖子的权限?
发表于 2003-9-24 20:41:00 | 显示全部楼层
citykunan发表于2003-9-24 13:31:00请问各位版主,我何时才有浏览精华帖子的权限?


努力一点,很快你就可以看到了
发表于 2003-9-25 15:11:00 | 显示全部楼层
为什么我以前能更改自己的基本资料,而现在总是出错!!!???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:59 , Processed in 0.173472 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表