Я пытаюсь скопировать диапазон ячеек из таблицы Excel 2010 и вставить их в таблицу в AutoCAD LT 2016. Моя проблема в том, что Excel применяет информацию о форматировании к каждой ячейке. AutoCAD использует это форматирование для переопределения своих стилей по принципу «ячейка за ячейкой», поэтому моя таблица не соответствует стандартам дизайна.
Я хотел бы удалить все форматирование из файла Excel, как это можно было сделать в Excel <97. Если это невозможно, то если бы была утилита буфера обмена, которая удаляла бы форматирование из таблицы (но оставляла информацию об объединении ячеек), это было бы приемлемой альтернативой.
Я пробовал копировать и вставлять данные из Google Docs и LibreOffice, но AutoCAD интерпретирует объекты буфера обмена по-разному и не создает таблицу из данных при вставке.
Я видел некоторые процедуры LISP, которые очищают это форматирование в AutoCAD, но поскольку мой работодатель использует LT, они мне недоступны.
Есть идеи?
решение1
Чтобы удалить все форматирование, выделите нужные ячейки и на ленте нажмите:
Home > Editing > Clear > Clear Formats
решение2
Дешевый и сердитый обходной путь:
Пробовали ли вы скопировать столбец в Блокнот, а затем скопировать из Блокнота в Autocad?
Вы даже можете просто скопировать всю таблицу в Блокнот, а затем в AutoCad (у меня его нет, поэтому я не пробовал), но, скорее всего, он просто импортирует каждую строку в одну ячейку с кучей символов табуляции, и вам придется делать это столбец за столбцом.
Я предполагаю, что вы уже пробовали "вставить значения" на другой лист, а затем скопировать с этого листа? Если вы это сделаете, то скопируется "calibri, size 10" или какой там установлен стиль Excel по умолчанию вместо обычного текста, или это сработает?
Надеюсь, что-то из этого поможет.
решение3
Если вы хотите удалить все форматы с листа, но сохранить объединение ячеек, то:
- скопировать рабочий лист
- очистить все форматы в копии(это также приведет к разделению ячеек)
- повторно объединить ячейки в копии на основе объединенных ячеек в оригинале
Этот короткий макрос сделает следующее:
Sub qwerty()
Dim orig As Worksheet, r As Range
Dim neww As Worksheet
Set orig = ActiveSheet
ActiveSheet.Copy After:=Worksheets(Sheets.Count)
Set neww = ActiveSheet
Cells.ClearFormats
For Each r In orig.UsedRange
If r.MergeArea.Address = r.Address Then
Else
neww.Range(r.MergeArea.Address).Merge
End If
Next r
End Sub
решение4
- Скопировать из Microsoft Excel.
- Вставьте в LibreOffice Calc (Специальная вставка -> Неформатированный текст).