Python提取cad表格数据至excel
在日常工程设计中,CAD文件中常包含大量重要数据,例如节点、构件编号、面积尺寸和坐标信息。为了方便查阅和后续处理,通常需要将这些数据导出到Excel表格。本文介绍使用Python语言编写脚本,结合第三方库PYAUTOCAD和xlwt,实现从CAD到Excel的数据转换。这样不仅可以节省人力和时间成本,而且无需安装复杂软件也可以实现数据迁移,十分便捷。
代码以Python语言为基础,运用了PYAUTOCAD进行CAD数据的读取,并利用xlwt写入Excel文件,整个流程高效且易于理解,适用于所有Autocad版本2007至2020,具有良好的通用性。
以下方表格为例,各列数据主要包括序号(xx)、三维坐标(x, y, z)。进行数据转换时,重要步骤包括:使用PYAUTOCAD从CAD中提取数据,使用xlwt将提取的数据写入Excel中。代码流程如下:
```python
!/user/bin/python
coding:UTF8
from pyautocad import Autocad
import xlwt
初始化并连接Autocad
acad = Autocad(create_if_not_exists=True)
acad.prompt("Hello, Autocad from Python\n")
print(f"当前CAD文件名: {acad.doc.Name}")
从CAD中提取文本信息,包括文本内容与插入点坐标
drawing_data = [[text.TextString, text.InsertionPoint] for text in acad.iter_objects('Text', dont_cast=True)]
将文本字符串转换为整数类型
drawing_numbers = [int(text[0]) for text in drawing_data]
定义函数,等分为指定数量的子列表,便于后续处理(按照行的形式)
def divide_list(l, chunk_size):
return [l[x:x + chunk_size] for x in range(0, len(l), chunk_size)]
按指定格式分组数据
grouped_data = divide_list(drawing_numbers, 4)
初始化Excel工作簿与工作表
wbkName = 'joint1100' 设定输出EXCEL文件名
wbk = xlwt.Workbook() 创建新工作簿
sheet = wbk.add_sheet('sheet1') 添加工作表
标题文件
sheet.write(0, 0, '编号')
sheet.write(0, 1, 'X')
sheet.write(0, 2, 'Y')
sheet.write(0, 3, 'Z')
按照数据数组的结构填充数据于Excel文件中
for row_index, row_data in enumerate(grouped_data):
for col_index, data in enumerate(row_data):
sheet.write(row_index + 1, col_index, data)
保存文件
wbk.save(wbkName + '.xls') 输出结果,验证数据成功加载至EXCEL文件
```