POI Excel 파일 읽기에 대한 메모 예제

4632 단어 poiExcel
package xls;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

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;

public class ReadXL
{
    public static String fileName = "C://xls//EXCEL.xls";
    public static String path = "C://xls//"; // , .
    public static void main(String argv[])
    {
        List list = readExcel();
        String xmldata = buildXML(list);
        createXMLFile(xmldata);
    }

    /**
     *  EXCEL 
     * @return List
     */
    public static List readExcel()
    {
        List list = null;
        UserBean ub = null;
        try
        {
            HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
                    fileName)); // excel 
            HSSFSheet sheet = workbook.getSheetAt(0); // sheet
            int rows = sheet.getPhysicalNumberOfRows(); // 
            list = new ArrayList();
            for (int i = 1; i < rows; i++)
            {
                HSSFRow row = sheet.getRow(i);
                ub = new UserBean();
                HSSFCell cell = row.getCell((short) 0); // 0( 0, )
                ub.setName(cell.getStringCellValue());
                cell = row.getCell((short) 1); //  1
                ub.setEmail(cell.getStringCellValue());
                cell = row.getCell((short) 2); // 2
                ub.setPhone(cell.getStringCellValue());
                cell = row.getCell((short) 3); // 3
                ub.setPasswd(cell.getStringCellValue());
                list.add(ub);
            }
            return list;
        }
        catch (Exception e)
        {
            return null;
        }
    }

    /**
     *  xml 
     * @param list List
     * @return String
     */
    public static String buildXML(List list)
    {
        StringBuffer sb = new StringBuffer();
        sb.append("<contents-list>/n/t");
        sb.append("<content>/n/t/t");
        for (int i = 0; i < list.size(); i++)
        {
            UserBean bean = (UserBean) list.get(i);
            sb.append("<userinfo>/n/t/t/t");
            sb.append("<name>" + bean.getName() + "</name>/n/t/t/t");
            sb.append("<email>" + bean.getEmail() + "</email>/n/t/t/t");
            sb.append("<phone>" + bean.getPhone() + "</phone>/n/t/t/t");
            sb.append("<passwd>" + bean.getPasswd() + "</passwd>/n/t/t");
            if (i + 1 < list.size())
            {
                sb.append("</userinfo>/n/t/t");
            }
            else
            {
                sb.append("</userinfo>/n/t");
            }
        }
        sb.append("</content>/n");
        sb.append("</contents-list>");
        return sb.toString();
    }


    /**
     *  
     * @param xmldata String
     */
    public static void createXMLFile(String xmldata)
    {
        String createTime = createTime();
        String filename = path + createTime + ".xml";
        OutputStreamWriter osw = null;
        FileOutputStream output = null;
        try
        {
            output = new FileOutputStream(filename);
            osw = new OutputStreamWriter(output, "utf-8");
            osw.write(xmldata);
            osw.flush();
        }
        catch (Exception ex)
        {
        }        
        finally
        {
            try
            {
                if (null != output)
                {
                    output.close();
                }
            }
            catch (IOException ex2)
            {
            }
            try
            {
                if (null != osw)
                {
                    osw.close();
                }
            }
            catch (IOException ex3)
            {
            }
        }
    }

    /**
     *  
     * @return String
     */
    public static String createTime()
    {
        Date date = new Date();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddmmss");
        String createTime = dateFormat.format(date);
        return createTime;
    }

}

좋은 웹페이지 즐겨찾기