`
ba1du
  • 浏览: 32572 次
  • 性别: Icon_minigender_1
  • 来自: Blizzard
社区版块
存档分类
最新评论

Part/BOM的导入

阅读更多
/**
* 根据路径读取excel中的part信息并创建part
* @param filepath
* @throws Exception
*/
public static void uploadfile(String filepath) throws Exception{

List list = readExcel(new FileInputStream(filepath));
StringBuffer parts = new StringBuffer();
if(list != null){
HashMap map = new HashMap();
map = (HashMap) list.get(0);
Set tempset = map.keySet();
for (Object o : tempset) {
parts.append(o.toString()).append(",");
}
parts.append("------------");
for (int i = 0; i < list.size(); i++) {
map = (HashMap) list.get(i);
Set set = map.keySet();
String name = map.get("名称").toString();
String number = map.get("编号").toString();
String state = map.get("状态").toString();
String creator = map.get("创建者").toString();
String createtime = map.get("创建时间").toString();
String modifytime = map.get("修改时间").toString();
String productname = map.get("产品名称").toString();
for (Object so : set) {
parts.append(map.get(so.toString()).toString()).append(",");
}
HashMap needmap = new HashMap();

needmap.put("name", name);
needmap.put("number", number);
needmap.put("state", state);
needmap.put("creator", creator);
needmap.put("createtime", createtime);
needmap.put("modifytime", modifytime);
needmap.put("productname", productname);
createPart(needmap, thispartcontainer);

}



}

}
分享到:
评论
4 楼 ba1du 2010-10-18  
private static final ReferenceFactory rf = new ReferenceFactory();
//指定文件夹路径、part对象、生命周期、容器
private static String UPLOAD_FILE_PATH="D:\\temp\\";
private static WTPart thispart;
private static LifeCycleState thispartstate;
private static WTContainer thispartcontainer;

//指定导入的part的生命周期、容器和当前part的一样
static{
try {
thispart= (WTPart) getObjectByOid("VR:wt.part.WTPart:311117");
thispartstate = thispart.getState();
thispartcontainer = thispart.getContainer();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

/**
* 根据oid获取对象
* @param oid oid
* @return 对象
* @throws WTException
*/
public static Object getObjectByOid(String oid) throws WTException{

return rf.getReference(oid).getObject();
}
/**
* test
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
System.out.println(thispartstate);
System.out.println(thispartcontainer);
//uploadfile("D:\\temp\\BOM-2.xls");

}
3 楼 ba1du 2010-09-30  
/**
* 根据part编号得到part
* @author xum 2010-9-30
* @param partNumber part编号
* @return part
* @throws Exception
*/
public static WTPart getPartByNumber(String partNumber) throws Exception{
QuerySpec qs = null;
QueryResult qr = null;
qs = new QuerySpec(WTPart.class);
qs.appendSearchCondition(new SearchCondition(WTPart.class,WTPart.NUMBER,SearchCondition.EQUAL,partNumber));
qr=PersistenceHelper.manager.find(qs);
if(qr.hasMoreElements()){
return (WTPart)qr.nextElement();
}
return null;
}
2 楼 ba1du 2010-09-30  
/**
* 根据excel中的part信息创建part
* @author xum 2010-9-30
* @param partmap part属性
* @param container part的容器
* @throws Exception
*/
public static void createPart(HashMap partmap,WTContainer container) throws Exception{
WTPart part=WTPart.newWTPart();
String name = partmap.get("name") == null ? "" : partmap.get("name").toString();
String number = partmap.get("number") == null ? "" : partmap.get("number").toString();
String state = partmap.get("state") == null ? "" : partmap.get("state").toString();
String creator = partmap.get("creator") == null ? "" : partmap.get("creator").toString();
String createtime = partmap.get("createtime") == null ? "" : partmap.get("createtime").toString();
String modifytime = partmap.get("modifytime") == null ? "" : partmap.get("modifytime").toString();
String productname = partmap.get("productname") ==null ? "" : partmap.get("productname").toString();


WTPart existpart = getPartByNumber(number);
if(existpart == null){
if(name.trim().length() > 0){
part.setName(name);
}
if(number.trim().length() > 0){
part.setNumber(number);
}
}
if(state.trim().length() > 0){
// State objstate = State.toState(state);
// LifeCycleState lcs = new LifeCycleState();
// lcs.setState(objstate);
// part.setState(lcs);
part.setState(thispartstate);
}

part.setContainer(container);
PersistenceHelper.manager.save(part);



}
1 楼 ba1du 2010-09-30  
/**
* 将excel中的part信息存到List中
* @author xum 2010-9-30
* @param is 文件流
* @return 存放excel中的part信息的list
* @throws Exception
*/
public static List readExcel(InputStream is) throws Exception{
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = workbook.getSheetAt(0);
List ldoc = new ArrayList();
HashMap hdoc = null;
HSSFRow row0 = sheet.getRow(0);
HSSFRow row = null;
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
row = sheet.getRow(i);
if(row == null){
continue;
}
hdoc = new HashMap();
int celltype = 1;
for(int j = 0; j < row.getLastCellNum(); j ++){
if(row0.getCell((short)j) == null){
continue;
}
String cellvalue = "";
celltype = row.getCell((short)j) == null ? 5 : row.getCell((short)j).getCellType();
if(celltype==0){
cellvalue=String.valueOf(row.getCell((short)j).getNumericCellValue());
if(cellvalue.endsWith(".0")){
cellvalue = cellvalue.substring(0,cellvalue.length()-2);
}
}else if(celltype==1){
cellvalue=row.getCell((short)j).getStringCellValue();

}
hdoc.put(row0.getCell((short)j).getStringCellValue(), cellvalue);
}
ldoc.add(hdoc);
}
return ldoc;
}

相关推荐

    利用allegro导出BOM

    2. 在Setup-&gt;Edit中添加要导入Allegro的属性,例如PART_TYPE=YES、ASSEMBLY_OPTION=YES。注意,属性名字不能带空格,属性内容不能包含中文。 3. 打开需要用的brd文件,并导入netlist。在Create user-defined ...

    SAP复杂装配下的BOM管理(SAPCAMS-BOMM).pptx

    我们还学习了BOM视图的概念,包括Components Area、Effectivity、Part Master和Tree View Area等。 模块2:设计BOM 在设计BOM模块中,我们学习了如何使用SAP系统来设计和管理BOM信息,包括如何创建零件、增加组件...

    PADS生成BOM表.pdf

    4. **选择显示属性**:选择“General part properties in table format”,这将确保BOM中包含如零件名称、封装类型、数量等基本信息。 5. **细化BOM内容**:根据需要,选择具体的BOM类型,例如可以选择添加供应商...

    PadsPCB导出BOM[整理].pdf

    用户可以根据需要将BOM文件导入到其他软件中,以便进行PCB设计和制造。 PadsPCB导出BOM功能可以帮助用户快速生成BOM报告,提高设计和制造效率。用户可以通过选择合适的报告类别、数据类型和对象属性来生成BOM报告,...

    NPI新产品导入快速编程软件VayoPro-SMTExpert.ppt

    1. **SMT程序离线制作**:支持多种设备平台如Fuji、Panasonic、Siplace、Yamaha、Hitachi、Juki等,可以进行CAD/Gerber导入,BOM核对分析,并自动生成贴装程序。通过灵活的料单格式配置和装配图纸制作,能在数分钟内...

    FUJI编程手册.pdf

    本解析将深入探讨FUJI编程手册中的关键环节,包括坐标导入、BOM导入、以及零件外形制作等核心技术点。 ### 坐标导入 坐标导入是FUJI贴片机编程的第一步,它涉及将元器件在PCB上的精确位置信息导入到机器的控制软件...

    Cadence OrCAD Capture CIS数据库配置.docx

    如果 BOM 中没有原理图封装,需要从原理图中把原理图封装导出,再通过 vlookup 的方式导入 BOM 中,最后再将整理好的 BOM 导入数据库中。料号一定要与原理图器件封装一一对应。 2. 从原理图中导出原理图库,放置...

    smt fuji flexa学习

    - **导入BOM文件**:导入Bill of Materials(BOM)文件,这个文件包含了所有需要贴装的元件清单。 - **编辑BOM格式**:根据需要调整BOM的显示和处理方式,比如元件分类或分组。 3. **其他关键操作**: - **连版...

    Valor_T5K_DFM_培训手册

    - **导入流程**:根据文件中的目录结构推测,数据导入包括导入CPL/BOM/AVL数据等步骤。 - **具体步骤**: - 导入CPL数据(用于不使用EDA数据的情况)。 - 导入BOM数据。 - 导入AVL数据。 - BOM验证。 - BOM合并...

    JavaScript 权威指南(第四版)part2.zip

    本书分为两部分,我们关注的是第二部分,即"JavaScript 权威指南(第四版)part2"。这部分内容可能涵盖了JavaScript的核心概念、高级特性以及实际应用。 JavaScript是一种广泛用于网页和网络应用的脚本语言,它与HTML...

    Cadence-Capture-CIS-批量修改元器件属性操作说明

    3. 在对话框中,选择“Place each part entry on a separate line”,并在header和Combined properties string中指定需要导出的参数。其中,“Reference”这一项是必须要选择的,因为它是器件的位号,是独一无二的...

    Cadence-原理图批量修改元器件属性.doc

    3. 选中“Place each part entry on a separate line”,并输入想要导出的参数,其中必须选择“Reference”,这是器件的唯一标识符。 二、修改 BOM 内容 修改 BOM 的内容可以按照自己的需求来修改。步骤如下: 1....

    SMT贴片机松下PT200软体程式制作.pptx

    5. **软件界面介绍**:松下PT200的软件界面包括TOOL菜单,其中File夹用于程序的上传、下载、备份和编辑,Line Convert菜单处理程序和CAD的导入、编辑和优化,Part Library管理部品库,Feeder Number Editor设置料架...

    精通JavaScript+jQuery Part1

     3.2.4 导入样式  3.3 CSS选择器  3.3.1 标记选择器  3.3.2 类别选择器  3.3.3 ID选择器  3.3.4 选择器集体声明  3.3.5 选择器的嵌套  3.3.6 子选择器  3.3.7 属性选择器  3.4 CSS设置...

    批量导出CATIA零件毛料尺寸

    - **ImportNameFromExcel**:从Excel导入零件名称,可能用于批量重命名或数据同步。 - **ExportPointToExcel**:导出零件上的点坐标信息,可用于进一步的几何分析或定位。 - **ImportPointFromExcel**:从Excel...

    实验五-2报表.ppt

    生成的BOM可以导出为不同的格式,如CSV(逗号分隔值)或XLS(Excel格式),方便导入到库存管理系统或采购平台。 2. **BOM的内容**:BOM通常包含元件的Designator、Footprint、Part Type、供应商信息、数量等,确保...

    orcad的映阳的教材

    本教材详细地介绍了如何在Orcad环境中进行ODBC设置,以确保数据可以从外部数据库顺利导入。 #### 设置步骤 **Step1:** 在系统中启动ODBC设置。可以通过“开始”菜单中的“设置”&gt;“控制面板”&gt;“管理工具”&gt;“数据...

    Java解析pdm文档完整详尽示例

    对于Java解析PDM文档,首先我们需要导入相应的库。如果PDM文档是XML格式,引入JDOM2库: ```java &lt;groupId&gt;org.jdom&lt;/groupId&gt; &lt;artifactId&gt;jdom2&lt;/artifactId&gt; &lt;version&gt;2.0.6&lt;/version&gt; &lt;/dependency&gt; ``` ...

    ORCAD-Pads-powerpcb设计电路板流程

    5. **生成BOM(物料清单)**:BOM列出所有组件及其数量,用于生产准备。同时,需要整理和合并原件,统一元件封装,优化库存和成本。 二、生成Pads Layout网络表并导入 1. **网络表生成**:从ORCAD生成带有原件属性...

    Cadence CIS本地数据库建立及其配置方法.pdf

    - 使用Resistor表为例,添加多个字段来定义元件属性,如MAS90No、PartType、Value、SchematicPart、PCBFootprint、Description等。 - 设置字段名称后,切换至数据表视图,开始填写具体的元器件信息。 2. 使用建立...

Global site tag (gtag.js) - Google Analytics