Как через АPI открыть спецификацию и сохранить её в Эксель

Автор Шилин Александр, 18.03.19, 16:23:37

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Шилин Александр

Не можем разобраться.
Надо открыть спецификацию и пересохранить ее в формате Эксель.
Открыть понятно, а как сохранить в нужном формате?

once

Это надо свой Converter писать или искать на просторах интернета. В 2 клика не получится. Если конечно сам Компас не умеет сохранять в Excel.

Шилин Александр

Компас-3D может сохранить спецификацию в Эксель
Как это сделать через API.

once

Тогда через интерфейс IConverter, смотрите в SDK. Нужно найти dll Компаса, которая конвертирует. Здесь на форуме есть точно про конвертацию в PDF, сделать нужно аналогично.

DesignЯR

ЦитироватьКомпас-3D может сохранить спецификацию в Эксель
Как это сделать через API.

Эта функция реализована с открывающимся окном. Даже при программном  вызове этой процедуры придется как-то нажимать кнопку - программно или вручную.
Если ничего не получится  с IConverter - то только перебором разделов и объектов и построчной переноской в файл Excell (его можно создавать даже без установленного Excell).

p3452

Доброго времени суток!

С обычными спецификациями (не на листе) можно обойтись и без нажатия кнопок.
Допустим у вас есть КОМПАС и спецификация с именем C:\Спецификация.spw, перебросим ее в Excel-й файл с тем же именем
IApplication kmpsApp  = null;
string spFile = @"C:\Спецификация";
Type t7 = Type.GetTypeFromProgID("KOMPAS.Application.7");
kmpsApp = (IApplication)Activator.CreateInstance(t7);
if (kmpsApp == null)
{ MessageBox.Show(this, " КОМПАС не установлен", "Сообщение");   
return "";
}
IKompasDocument kmpsdoc = kmpsApp.Documents.Open(spFile+".spw");
if (kmpsdoc != null)
{ kmpsApp.HideMessage = ksHideMessageEnum.ksHideMessageYes;
if (kmpsdoc != null)
kmpsdoc.SaveAs(spFile+".xls");
MessageBox.Show(this, "Файл ["+ spFile+ ".xls] сохранен!", "Сообщение");
}
kmpsApp.Quit();

Не нажав ни одной кнопки увидим сообщение: "Файл [Спецификация.xls] сохранен!" - проверяем...

Sabahs


p3452

Для 16 строк кода результат приемлем:
-  картинка не вставляется!?

Если использовать чуть больше строк кода можно получить любой желаемый результат :)

p3452

Оригинал
Результат