자바 POI관련 엑셀 파일 읽기 및 저장 문의사항

자바 POI관련 엑셀 파일 읽기 및 저장 문의사항

작성일 2018.07.15댓글 1건
    게시물 수정 , 삭제는 로그인 필요

※ 소스 수정이 안 되면 새로 만들어주셔도 좋습니다.

내공 500드리겠습니다.


안녕하세요.


자바 POI와 관련된 문의사항입니다.

아래 소스는 자바 POI를 이용하여, 텍스트 파일에서 특정 문자를 검색하여 그 다음 문자 값을
엑셀 파일로 저장하는 소스입니다.

텍스트 파일이 아닌 '엑셀 파일'에서 특정 문자(ex : K1100)를 검색하고, 같은 행의 그 다음 문자열을 저장하게 소스를 수정하려면

어떻게 수정해야하나요? 아무리 검색해봐도 답을 찾을 수가 없어서 자바 초보자로써 간곡하게 문의드립니다.

소스 수정 부탁드립니다.


※ 엑셀(아래의 소스는 텍스트 파일) 읽기 파일 안에서 특정 행의 K1100이 검색이 되면 그 다음 열에 나오는 ABCDEFG를 엑셀에

저장을 하는 코드를 작성을 하려고 하는데요..

(엑셀 읽기 파일 : 예) 3행  A열 : K1100 B열: ABCDEFG)



감사합니다.

-------------------------------------------------------------------------------------


import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.util.Scanner;



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;



class ExcelTest {

static HSSFRow row;

static HSSFCell cell;


public static void main(String[] args) throws FileNotFoundException{


HSSFWorkbook workbook = new HSSFWorkbook();

//Sheet명 설정

HSSFSheet sheet = workbook.createSheet("output");



Scanner scan = new Scanner(new File("C:\\Users\\user\\Temp\\input.txt")); // input.txt 경로


int index = 0;

while (scan.hasNextLine()) {

String s = scan.nextLine();

if (s.contains("K1100")) {

int indexOf = s.indexOf("K1100");

s = s.substring(indexOf+6, s.length());

row = sheet.createRow(index);

String[] arr = s.split("\\s+");

for (int i = 0; i < arr.length; i++) {

row.createCell(i).setCellValue(arr[i]);

}

index++;

}

}



// 출력 파일 위치및 파일명 설정

FileOutputStream outFile;

try {

outFile = new FileOutputStream("C:\\Users\\user\\Temp\\output.xls"); // output.xls 경로

workbook.write(outFile);

outFile.close();


System.out.println("파일생성 완료");

} catch (Exception e) {

e.printStackTrace();

}

}

}





profile_image 익명 작성일 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import java.io.File;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.FileOutputStream;
 
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;
 
class ExcelTest {
    static HSSFRow row;
    static HSSFCell cell;
 
    public static void main(String[] args) throws Exception {    
        HSSFWorkbook workbook = new HSSFWorkbook();
        //Sheet명 설정
        HSSFSheet sheet = workbook.createSheet("output");
        
        HSSFCell cell = row.createCell(0); // 행의 셀은 0번부터 시작
        FileReader fr = new FileReader("C:\\Users\\user\\Temp\\input.txt");  // 문서를 읽어들일 땐 FileReader 가 좋지요.
        BufferedReader br = new BufferedReader(fr);
        
        String s = null;
        int index = 0;
        while((s = br.readLine()) != null) { // 문서 한 줄씩 읽어 들임.
            if (s.contains("K1100")) {
                row = sheet.createRow(index);
                cell = row.createCell(row);
                cell.setCellValue("K1100");
                int indexOf = s.indexOf("K1100");
                s = s.substring(indexOf+6, s.length());
                cell == rowCreateCell(1);
                cell.setCellValue(s);
                index++// 특정 단어가 있을 때만 index 증가
            }
        }
        br.close();
        fr.close();
 
        // 출력 파일 위치및 파일명 설정
        File file = null;
        FileOutputStream fos = null
        try {
            file = new File("C:\\Users\\user\\Temp\\output.xls"); // output.xls 경로
            fos = new FileOutputStream(file);
            workbook.write(fos);
            System.out.println("파일생성 완료");
        } catch(FileNotFoundException e) {
            e.printStackTrace();
        } catch(IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                workbook.close();
                fos.close();
            } catch(IOException e) {
                e.printStackTrace();
            }        
        }
 
    }
}
cs

자바에서 excel파일 바로 열기

... 문서를 자바로 읽고 쓸수 있는 컴퍼넌트입니다 기본적으로 POI의 모든 컴퍼넌트들이 POIFS를 사용합니다. ② HSSF Microsoft의 엑셀파일을...

자바엑셀 읽고 쓰기

... 제가 자바엑셀을 조작해본적이 있어서요. jxl.jar 라고 하는 외부 라이브러리를 추가 임포트 하셔서 작업을... 자료를 엑셀파일저장하는 백업기능을 구현한 거라서...

컴퓨터 관련(IT) 용어 20개 알려주세요

... 앞의 모든 기능들은 별 것 아닌 것 같지만 3D 엑셀리... 개인용 네트워크 컴퓨터와 통신시장 관련... 디스크 저장 영역으로 파일을 전송받기 위해 FTP프로그램을...

컴퓨터 사양 추천

... 보통 폴더 3~4개, 엑셀파일 3~4개, 한글파일 2개정도... 저장공간이 많이 필요하시면 SSD를 제외하고 하드를... 컴퓨터 구매관련 문의나 비교견적 믿을수 있는...

인터넷용어

... 자바, 비주얼 베이직, 비주얼 씨플러스 플러스 등의... 워드나 엑셀 파일을 웹브라우저안에서 바로 볼 수... 스테이션 관련 자원(프로그램이나 데이터 등). ⑤...

컴퓨터 용어에 대해 아시는분

... 올려주세요`~그리구 엑셀루 그걸 작성할껀데...... 설정 파일 응용 프로그램에 의해 생성된 피일로서 프로그램을 설치할 때 만들어지는 선택 사항들을 저장...

워드 딸수있는 비법?

... 저장, 사운드 카드를 통해서 직접 재생, 미디 파일보다 용량이 크다. 94. 하이퍼텍스트 : 서로 관련된... 이왕이면 채택좀 해주시면ㅎㅅㅎ;;) 문의사항 있으시면...