excel 파일 내용을 읽고 데이터베이스에 쓰기

11078 단어 Excel
생각
excel 파일의 내용을 읽고 문자열을 연결하여oracle 데이터베이스 임시 테이블에 데이터를 삽입한 다음 임시 테이블의 데이터를 조작합니다
package com.cici.testExcel;



import java.io.FileInputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;



 

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

 

/**

 * @param sourcefile

 * @return

 */

public class ReadExcel {



    public static void main(String[] args) { 

     

        /* System.out.println("Please insert the pageNO :");

            int pageNo = SystemIn.readInt();



            System.out.println("Please insert the lineMount :");

            int lineMount = SystemIn.readInt();



            System.out.println("Please insert the listMount :");

            int listMount = SystemIn.readInt();*/



            //List list = readExcel("E:\\F\\UtilJars\\TABLE NAMES.xlsx","AR_STATISTIC_EMPTYPE", 4, 7, 4);

            List list = readExcel("E:\\F\\UtilJars\\TABLE NAMES.xlsx","TEST", 5, 52, 2);

            for (int i = 0; i < list.size(); ++i)

              System.out.println(list.get(i));

    }

    /**

     * ReadData from Excel txt form

     * 

     * @param sourcefile the source file path

     * @param sheetPageNo the sheet no of target content 

     * @param lineNo the line no of target content 

     * @param listNo the list no of target content

     * @return

     */

    

    public static List<StringBuffer> readExcel(String sourcefile,String tableName,int pageNo,int lineMount,int listMount ) {

         XSSFWorkbook xwb = null;

            try {

              xwb = new XSSFWorkbook(new FileInputStream(sourcefile));

            } catch (IOException e) {

              e.printStackTrace();

            }



            List lists = new ArrayList();



            for (int i = 0; i < lineMount; ++i) {

              XSSFSheet xSheet = xwb.getSheetAt(pageNo);

              XSSFRow row = xSheet.getRow(i);

              StringBuffer s1 = new StringBuffer("INSERT INTO "+tableName+"  VALUES(  '");

              for (int j = 0; j < listMount; ++j)

              {

                row.getCell(j).setCellType(1);

                String msgj = row.getCell(j).getStringCellValue();



                if ((msgj != null)  && (j != listMount - 1))

                  s1 = s1.append(msgj.trim() + "','");

                else

                  s1 = s1.append(msgj.trim() + "');");

              }



              lists.add(s1);

            }



            return lists;

    }

 



}

 
다음 문자열 결합 (insert 문장)
INSERT INTO TEST VALUES(  'CPNY_ID','EMPID');

INSERT INTO TEST VALUES(  'PERSON_ID','CHINESE_PINYIN');

INSERT INTO TEST VALUES(  'EMPID','ENGLISH_NAME');

INSERT INTO TEST VALUES(  'LOCAL_NAME','KOREAN_NAME');

INSERT INTO TEST VALUES(  'CHINESE_PINYIN','POSITION_NO');

INSERT INTO TEST VALUES(  'ENGLISH_NAME','DUTY_NO');

INSERT INTO TEST VALUES(  'KOREAN_NAME','POST_NO');

INSERT INTO TEST VALUES(  'STEP_CHANGE_DATE','POST_GRADE_NO');

INSERT INTO TEST VALUES(  'EMP_OFFICE','PAY_STEP');

INSERT INTO TEST VALUES(  'OLD_PERSON_ID','STATUS_CODE');

데이터베이스 로그인
두 필드의 차집합 1 비교(필드 A에 데이터가 있지만 필드 B에 없는 데이터)
SELECT A FROM TEST MINUSSELECT B FROM TEST;
 
결과 표시
1    AGENT_POST_GRADE_ID2    DUTY_ID3    OLD_POST_GRADE_ID4    POSITION_ID5    POST_GRADE_ID6    POST_ID7   
두 필드의 차집합 2 비교(필드 B에 데이터가 있지만 필드 A에 없는 데이터)
SELECT B FROM TEST MINUSSELECT A FROM TEST ;
 
결과 표시
1    ACTIVITY2    AGENT_POST_GRADE_NO3    CREATED_BY4    CREATE_DATE5    DUTY_NO6    JOIN_BLOC_DATE7    OLD_POST_GRADE_NO8    ORDERNO9    POSITION_NO10    POST_GRADE_NO11    POST_NO12    SETTLEMENT_DATE13    STAT_NO14    UPDATED_BY15    UPDATE_DATE

좋은 웹페이지 즐겨찾기