社区
Inventor 产品技术应用讨论区
欢迎访问欧特克Inventor论坛!分享知识,发帖提问,浏览Inventor热帖
取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

iLogic明细栏自动导出

12 条回复12
已解决
回复
1 条消息(共 13 条)
anb120
1882 次查看, 12 条回复

iLogic明细栏自动导出

工程图明细栏导出时,通过选项里设置”已导出的列“、“格式”的勾选,“开始单元”的填写,以及模板文件的指定,可以完美导出BOM清单,如何通过iLogic实现完美自动化呢?

导出文件名和文件路径可与工程图路径名称相同,减少人工干预。

试了好多次都失败了,请大佬帮忙解决下。。。感激不尽。

标签 (1)
12 条回复12
2 条消息(共 13 条)
yuzeaa
回复: anb120

Dim NVP As NameValueMap
NVP = ThisApplication.TransientObjects.CreateNameValueMap
NVP.Add("TableName", "明细栏")
NVP.Add("ExportedColumns", "No.;Title;Techn. Details;Qty.;Unit;Bauteil Nummer;Supplier") '请检查输入与图纸完全一致标题,分号分隔
NVP.Add("IncludeTitle",True)
NVP.Add("StartingCell", "A3")
NVP.Add("Template", "C:\Path\to\your\Excel.xlsx") '填写excel模板文件名
NVP.Add("AutoFitColumnWidth",True)
FileName = ThisDoc.PathAndFileName(False) & ".xlsx"
If IO.File.Exists(FileName) Then Return
Dim oPartsList = ThisApplication.ActiveDocument.ActiveSheet.PartsLists(1)
oPartsList.Export(FileName,PartsListFileFormatEnum.kMicrosoftExcel,NVP)

PartsList.Export Method

3 条消息(共 13 条)
anb120
回复: yuzeaa

Dim NVP As NameValueMap
NVP = ThisApplication.TransientObjects.CreateNameValueMap
NVP.Add("TableName", "明细栏")
NVP.Add("ExportedColumns", "No.;Title;Techn. Details;Qty.;Unit;Bauteil Nummer;Supplier") '请检查输入与图纸完全一致标题,分号分隔
NVP.Add("IncludeTitle",True)
NVP.Add("StartingCell", "A10")
NVP.Add("Template", "‪E:\inventor\Excel\BOM.xlsx") '填写excel模板文件名
NVP.Add("AutoFitColumnWidth",True)
FileName = ThisDoc.PathAndFileName(False) & ".xlsx"
If IO.File.Exists(FileName) Then Return
Dim oPartsList = ThisApplication.ActiveDocument.ActiveSheet.PartsLists(1)
oPartsList.Export(FileName,PartsListFileFormatEnum.kMicrosoftExcel,NVP)
大佬,非常感谢你的回复!我根据你写的代码修改后,在iLogic中运行提示报错,参数如下:
参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
不知是什么原因导致会出现这种问题呢。

 

4 条消息(共 13 条)
yuzeaa
回复: anb120

列标题你改了没有,我是随便用键盘敲的,你重新输入一遍,一个空格都不能错

微信图片_20231005225810.png

5 条消息(共 13 条)
anb120
回复: yuzeaa

非常厉害!谢谢大佬!

我已经解决这个问题了,是由于文件路径导致的问题。

由于我并不知道“格式”内的代码,我无法进行其他选项的勾选。

你列出了标题的代码 “IncludeTitle”  ,不知道上面3个的代码分别是什么呢?

anb120_0-1696518979989.png

大佬方便完整的列出吗?

6 条消息(共 13 条)
yuzeaa
回复: anb120

我给你的帮助链接打开网页往下拉,空白比较多,只有这些选项 ,其中"AutoFitColumnWidth"是自动调整列宽,其他2个我好像没看到,你先试下目前的选项是否能满足你的要求

 

7 条消息(共 13 条)
anb120
回复: anb120

代码翻完了都没有看到这2个。
但是基于我的提问确实已经完美解决了。
但是我发现了一个问题之外的新问题,因为明细栏“第一行”为“特性名称”,导出到EXCEL中时,
会多出一行所需数据之外的特性名称,可否在导出的时候,不导出这一行吗?

 

8 条消息(共 13 条)
yuzeaa
回复: anb120

你说的特性名称是什么,是表头吗?请将你的问题再描述的具体点。或者你希望导出之后是什么样的截图看下

9 条消息(共 13 条)
anb120
回复: yuzeaa

如下图所示,这个明细表的“特性名称”在导出时也会一起被导出了模板上的“序号9”本来就有标题这一行(EXCEL的标题需要中英双语),用明细表导出时,”特性名称“被导出到行10了,导致出现2个标题了,

anb120_2-1696552544368.png

 

 

10 条消息(共 13 条)
yuzeaa
回复: anb120

请问你之前手动导出的时候可以做到不导出这一行吗?

11 条消息(共 13 条)
anb120
回复: yuzeaa

不可以😂,我也是刚才发现还能使用模板这个功能。

12 条消息(共 13 条)
yuzeaa
回复: anb120

Inventor不支持删除表头,但是可以用Excel操作删除这一行,更多功能你可以学习Excel API.比如设置边框线、格式等等

Dim NVP As NameValueMap
NVP = ThisApplication.TransientObjects.CreateNameValueMap
NVP.Add("TableName", "明细栏")
NVP.Add("ExportedColumns", "No.;Title;Techn. Details;Qty.;Unit;Bauteil Nummer;Supplier") 
NVP.Add("IncludeTitle",True)
NVP.Add("StartingCell", "A3")
NVP.Add("Template", "C:\Path\to\your\Excel.xlsx") 
NVP.Add("AutoFitColumnWidth",True)
FileName = ThisDoc.PathAndFileName(False) & ".xlsx"
If IO.File.Exists(FileName) Then Return
Dim oPartsList = ThisApplication.ActiveDocument.ActiveSheet.PartsLists(1)
oPartsList.Export(FileName, PartsListFileFormatEnum.kMicrosoftExcel, NVP)
ExcelApp  = CreateObject("Excel.Application")
Excelbook = ExcelApp.Workbooks.Open(FileName)
Excelsheet = Excelbook.Worksheets(1)
Excelsheet.Range("A3").EntireRow.Delete()
Excelbook.Save
ExcelApp.Quit

, 

13 条消息(共 13 条)
anb120
回复: yuzeaa

可以了,谢谢大佬。

找不到想要的内容?向社区提问或分享您的知识。

到论坛发帖  

”