Тема: Как перенести данные из таблицы ATable в Excel
Нужно перенести данные из таблицы ATable в Excel. Если можно помогите пожалуйста с кодом.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Как перенести данные из таблицы ATable в Excel
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Нужно перенести данные из таблицы ATable в Excel. Если можно помогите пожалуйста с кодом.
> Znich007
Примерно так, только файл Эксель форматируй вручную
перед закрытием или займись этим позже -
без разницы
В меню Tools -> Options -> General
в поле Error Trapping включи радио-кнопку:
"Break on Unhandled Errors" а также не забудь
в References добавить ссылку на библиотеку
Эксель
Option Explicit Sub TableToExcel() Dim rCnt As Long Dim iNdx As Long Dim lngRow As Long Dim lngCol As Long Dim oent As AcadEntity Dim tbl As AcadTable Dim pt As Variant Dim row As Long Dim col As Long Dim collTxt As New Collection Set collTxt = New Collection ThisDrawing.Utility.GetEntity oent, pt, vbCrLf & "Select table:" If TypeOf oent Is AcadTable Then Set tbl = oent End If With tbl For row = 0 To .Rows - 1 ReDim tmp(0 To .Columns - 1) For col = 0 To .Columns - 1 tmp(col) = .GetText(row, col) Next col collTxt.Add tmp Next End With '===================== excel part follows here============' Dim xlApp As Excel.Application Dim xlBook As Workbook Dim xlSheet As Worksheet Dim strFilePath As String On Error Resume Next Err.Clear Set xlApp = GetObject(, "Excel.Application") If Err <> 0 Then Err.Clear Set xlApp = CreateObject("Excel.Application") If Err <> 0 Then MsgBox "Cannot start Excel", vbExclamation End End If End If On Error GoTo 0 xlApp.Visible = True Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) On Error GoTo Err_control rCnt = UBound(collTxt.Item(1)) iNdx = 1 With xlSheet .Range("A:A").NumberFormat = "@" For lngRow = 1 To collTxt.Count For lngCol = 1 To rCnt + 1 .Cells(lngRow, lngCol) = collTxt.Item(lngRow)(lngCol - 1) iNdx = iNdx + 1 Next Next End With strFilePath = ThisDrawing.Path & "\ExportTable.xls" xlBook.SaveAs strFilePath MsgBox "Format cells manually" & vbCr & "then close Excel" Err_control: If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
~'J'~
> Fatty
Внимание: ATable
> Александр Ривилис
Я так понял: AcadTable, а если имеется ввиду
прога с таким названием - тогда я пас
~'J'~
Помог atableX2G (plug-in к ATable), разобрался как читать и записывать в ячейки и многое другое, но возник вопрос: как получить объект существующей таблицы ATable, при этом она находится не на модели, а на layout.
В принципе можно перенести таблицу и на модель, если надо будет.
Достаточно качнуть новую версию ATable дял AutoCAD 2007-2009, она сейчас бесплатная и бета, установить, открыть таблицу и через буфер обмена перенести данные в Excel.
> Alxd
Огромнейшее спасибо за новую версию Atable. Но есть несколько замечаний:
1. Не работает конвертация таблиц из версии 6.Х.
При подгрузке лиспа появляется новый пункт в меню, таблица через контекстное меню выбирается, но ничего не происходит. Для правки старых таблиц приходится использовать 2005 акад со старой версией Atable.
2. Плагин atableX2G от старой версии не работает (что, в принципе, не удивительно). Будет ли этот плагин для новой версии? Уж очень он удобный.
> [Re:] Alxd
Скажите пожалуйста, каким образом можно программно c помощью VB скопировать данные из таблицы в буфер обмена, а затем вставить в excel? Может у Вас есть пример кода?
2 Loner Wanderer
Вместо atableX2G планирую написать иной способ связи с Excel. Осталось только собраться с мыслями. ;)
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Как перенести данные из таблицы ATable в Excel
Форум работает на PunBB, при поддержке Informer Technologies, Inc