ExcelToXml

package com.huawei.it.excel;


import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;


import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;


public class ExcelToXml {
public static final String FILE_PATCH="d:/lib/test.xls";
public static final String NEW_FILE_PATCH="d:/lib/new.xml";
public int rows = 0;
public HSSFSheet sheet;
public void readExcel() throws Exception{

InputStream is = new FileInputStream(new File(ExcelToXml.FILE_PATCH));

HSSFWorkbook wb = new HSSFWorkbook(is);
sheet = wb.getSheetAt(0);
rows = sheet.getPhysicalNumberOfRows();
HSSFRow oneRow = sheet.getRow(0);
if(oneRow == null){
return;
}
int cells = oneRow.getPhysicalNumberOfCells();
for(int i=0; i<cells; i++){
String title = getStringCellValue(oneRow.getCell(i));
}
createXml();
}

public void createXml(){
Document document = DocumentHelper.createDocument(); 
Element root = document.addElement("root");
for(int i=1; i<rows; i++) {
Element student =  root.addElement("student");
HSSFRow row = sheet.getRow(i);
if(row == null){
continue;
}
String name = getStringCellValue(row.getCell(0));
Element nameEle = student.addElement("name");
nameEle.addText(name);
 
String age = getStringCellValue(row.getCell(1));
Element ageEle = student.addElement("age");
ageEle.addText(age);
 
String sex = getStringCellValue(row.getCell(2));
Element sexEle = student.addElement("sex");
sexEle.addText(sex);
 
String desc = getStringCellValue(row.getCell(3));
Element descEle = student.addElement("desc");
descEle.addText(desc);
}

print(document);
}
/**
     * 获取单元格数据内容为字符串类型的数据
     * 
     * @param cell Excel单元格
     * @return String 单元格数据内容
     */
    private String getStringCellValue(HSSFCell cell) {
        String strCell = "";
        switch (cell.getCellType()) {
        case HSSFCell.CELL_TYPE_STRING:
            strCell = cell.getStringCellValue();
            break;
        case HSSFCell.CELL_TYPE_NUMERIC:
            strCell = String.valueOf(cell.getNumericCellValue());
            break;
        case HSSFCell.CELL_TYPE_BOOLEAN:
            strCell = String.valueOf(cell.getBooleanCellValue());
            break;
        case HSSFCell.CELL_TYPE_BLANK:
            strCell = "";
            break;
        default:
            strCell = "";
            break;
        }
        if (strCell.equals("") || strCell == null) {
            return "";
        }
        if (cell == null) {
            return "";
        }
        return strCell;
    }
    
    public void print(Document document){
    StringWriter stringWriter = new StringWriter();  
        OutputFormat xmlFormat = new OutputFormat();  
        xmlFormat.setEncoding("GBK"); 
        xmlFormat.setNewlines(true); 
        xmlFormat.setIndent(true); 
        xmlFormat.setIndent("    "); 
//        ByteArrayOutputStream out = new ByteArrayOutputStream();
        FileOutputStream out = null;
try {
out = new FileOutputStream(new File(NEW_FILE_PATCH));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
        XMLWriter xmlWriter;
try {
xmlWriter = new XMLWriter(out,xmlFormat);
xmlWriter.write(document);  
xmlWriter.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}  
        System.out.println(document.toString()); 
    }
    


}
内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值