자바 POI관련 엑셀 파일 읽기 및 저장 문의사항
-
게시물 수정 , 삭제는 로그인 필요
※ 소스 수정이 안 되면 새로 만들어주셔도 좋습니다.
내공 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();
}
}
}
※ 소스 수정이 안 되면 새로 만들어주셔도 좋습니다.
내공 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();
}
}
}