遇到个炽手的问题,如题。分解下这个问题,也就2个小问题:
1.如何通过JAVA读取EXCEL文件。
2.如何导出成XML文件。第二个问题我还是做得来的,就第一个问题成了真正的问题了。请各位不吝赐教,谢谢。

解决方案 »

  1.   

    解析 表格有现成的api,推荐使用jxl包 在网上下个 jxl的包 和相关的API
    http://zhidao.baidu.com/question/114927870.html?si=3
      

  2.   

    1.如何通过JAVA读取EXCEL文件。 
      流方式读取(不知行否?)
    2.如何导出成XML文件。 
      流方式写时候,拼成Xml格式字符串,再写入XML文件
      

  3.   

    转:import java.io.FileInputStream;   
    import java.io.IOException;   
    import java.io.InputStream;   
    import java.util.Date;   
    import java.util.ArrayList;   
    import java.util.HashMap;   
    import java.util.Iterator;   
    import java.util.LinkedList;   
      
    import org.apache.poi.hssf.usermodel.HSSFCell;   
    import org.apache.poi.hssf.usermodel.HSSFDataFormat;   
    import org.apache.poi.hssf.usermodel.HSSFDateUtil;   
    import org.apache.poi.hssf.usermodel.HSSFRow;   
    import org.apache.poi.hssf.usermodel.HSSFSheet;   
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;   
    import com.fsti.eoms.util.DateUtil;   
      
    public class ExcelReader {   
        public static void main(String[] arg) {   
            ExcelReader er = new ExcelReader();   
            try {   
                HashMap map = er.readExcel("c:/Sheet.xls");   
                System.out.println(map.isEmpty());   
                for(int i = 0; i < map.keySet().size(); i++) {   
                    LinkedList list = (LinkedList)map.get(new Integer(i+1));   
                    Iterator it = list.iterator();   
                    while(it.hasNext()) {   
                        System.out.print(it.next()+"\t");   
                    }   
                    System.out.print("\n");   
                    System.out.print("a");   
                }   
            } catch (Exception e) {   
                // TODO Auto-generated catch block   
                e.printStackTrace();   
            }   
            System.out.print("a");   
        }   
        /**  
         * 读EXCEL文件  
         * @param path  
         * @return  
         */  
        public HashMap readExcel(String path) {   
            HashMap map= null;   
            try {   
                HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(path));   
                //表单   
                for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {   
                    if (null != workbook.getSheetAt(numSheets)) {   
                        HSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheet   
                         //行   
                        map = new HashMap();   
                        for (int rowNumOfSheet = 1; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {   
                            if (null != aSheet.getRow(rowNumOfSheet)) {   
                                HSSFRow aRow = aSheet.getRow(rowNumOfSheet);   
                                LinkedList al = new LinkedList();   
                                //列   
                                for (short cellNumOfRow = 1; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {   
                                    String strCell = "";   
                                    Object a = aRow.getCell(cellNumOfRow);   
                                    if (null != aRow.getCell(cellNumOfRow) ) {   
                                        HSSFCell aCell = aRow.getCell(cellNumOfRow);   
                                        if(aCell.getCellType() == (aCell.CELL_TYPE_NUMERIC)) {   
                                             strCell =String.valueOf(aCell.getNumericCellValue());   
                                             int index = strCell.indexOf(".");   
                                             if(index != -1) {   
                                                 strCell = strCell.substring(0,index);   
                                             }   
                                             if(HSSFDateUtil.isCellDateFormatted(aCell)) {   
                                                 strCell = DateUtil.convertDateToString("yyyy-MM-dd HH:mm:ss",aCell.getDateCellValue());   
                                              }   
                                        } else {   
                                            strCell = aCell.getStringCellValue();   
                                        }   
                                        al.add(cellNumOfRow-1, strCell);   
                                    }   
                                }   
                                map.put(new Integer(rowNumOfSheet), al);//添加一行数据   
                            }   
                        }   
                    }    
                }   
            } catch (Exception e) {   
                System.out.println("-------------ReadExcelError------------------" + e.getMessage());   
                e.printStackTrace();   
            }   
            return map;   
        }   
    }  读取之后,遍历map数据,写入一个XML文件就行了
      

  4.   

    第一个问题:读取Excel,可以使用第三方包POI,提供了读取和写入Excel文件的功能。
    第二个问题,写xml,可以使用DOM。其实对于xml操作,使用groovy会更加简洁和方便
      

  5.   

    这个问题还是比较麻烦的,它涉及到上传,解析execle,然后再把数据生成xml文件
    我以前做过的
      

  6.   

    谢谢 各位,已经搞 定了.
    昨天也发现个很有用的开源网站 大家也可以看下.
    http://www.open-open.com/