JSON 및 CSV와 같은 사용 가능한 다양한 소스에서 Microsoft Excel로 데이터를 쉽게 내보낼 수 있습니다. Java 개발자는 배열, 개체 목록, JSON 및 CSV의 데이터를 프로그래밍 방식으로 Excel 문서로 내보낼 수 있습니다. 이 기사에서는 Java를 사용하여 데이터를 Excel로 내보내는 방법을 배웁니다.
이 문서에서는 다음 주제를 논의/다룹니다.
- 데이터 내보내기를 위한 Java API
- Java에서 Excel로 배열 내보내기
- 2차원 배열을 Excel로 내보내기
- Java에서 Excel로 ArrayList
- Java의 Excel로 사용자 정의 개체 컬렉션 내보내기
- Java에서 병합된 셀을 사용하여 Excel로 데이터 내보내기
- Java의 한 Excel 파일에서 다른 파일로 행과 열 복사
- Java에서 JSON 데이터를 Excel로 내보내기
- Java를 사용하여 Excel에서 CSV 데이터 가져오기
데이터 내보내기를 위한 Java API
Excel로 데이터를 내보내기 위해 Aspose.Cells for Java API를 사용합니다. Java 응용 프로그램 내에서 Excel 파일을 생성, 편집 또는 변환할 수 있는 강력한 스프레드시트 조작 API입니다. API를 사용하면 Microsoft Excel 응용 프로그램 없이 프로그래밍 방식으로 Excel 자동화 기능을 수행할 수 있습니다.
API의 JAR을 다운로드하거나 Maven 기반 Java 애플리케이션에 다음 pom.xml 구성을 추가하여 아래에 언급된 코드 예제를 시도할 수 있습니다.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>21.8</version>
</dependency>
Java에서 Excel로 배열 내보내기
1차원 배열 또는 2차원 배열에서 Excel 문서로 데이터를 쉽게 내보낼 수 있습니다. 배열은 참조 유형 또는 값 유형일 수 있습니다. 아래에 언급된 간단한 단계에 따라 배열에서 Excel로 데이터를 내보낼 수 있습니다.
- Workbook 클래스의 인스턴스 만들기
- Worksheet 클래스의 인스턴스에서 워크시트 가져오기
- 문자열 값을 포함하는 배열 만들기
- 배열을 사용하여 importArray() 메서드를 호출합니다.
- Workbook 클래스의 save() 메서드를 호출하여 출력 파일을 저장합니다.
다음 코드 샘플은 Java를 사용하여 문자열 배열을 Excel로 내보내는 방법을 보여줍니다.
// 통합 문서 개체 초기화
Workbook workbook = new Workbook();
// 워크시트 참조 가져오기
Worksheet worksheet = workbook.getWorksheets().get(0);
// 이름을 문자열 값으로 포함하는 배열 만들기
String[] names = new String[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };
// 이름 배열을 세로로 첫 번째 행과 첫 번째 열로 내보내기
worksheet.getCells().importArray(names, 0, 0, true);
// 엑셀 파일 저장
workbook.save("C:\\Files\\output.xlsx");
API의 Workbook 클래스는 엑셀 스프레드시트를 생성하기 위한 기본 클래스입니다. 네이티브 엑셀 파일을 열고 저장하는 기능을 제공합니다. 이 클래스의 save() 메서드는 지정된 파일 경로에 출력 파일을 저장하는 데 사용됩니다.
Worksheet 클래스는 하나의 워크시트를 나타내며, 셀과 행으로 작업할 수 있는 기능을 제공합니다.
Cells 클래스의 importArray() 메서드는 문자열 배열을 워크시트로 내보냅니다. 다음 입력 매개변수를 사용합니다.
- stringArray: 문자열 값의 배열
- firstRow: 내보낼 첫 번째 셀의 행 번호
- firstColumn: 내보낼 첫 번째 셀의 열 번호
- isVertical: 데이터를 세로로 내보낼지 가로로 내보낼지 지정합니다.
API는 또한 오버로드된 버전의 importArray() 메서드를 제공하여 정수 또는 double 배열을 워크시트로 내보낼 수 있습니다.
2차원 배열을 Excel로 내보내기
마찬가지로 2차원 배열을 Excel 파일로 내보낼 수 있습니다. 다음 코드 샘플은 Java에서 2차원 배열을 Excel 파일로 내보내는 방법을 보여줍니다.
// 통합 문서 개체 초기화
Workbook workbook = new Workbook();
// 워크시트 참조 가져오기
Worksheet worksheet = workbook.getWorksheets().get(0);
// 정수의 2차원 배열 만들기
int[][] array2D = {
{ 1, 2 },
{ 3, 4 },
{ 5, 6 },
{ 7, 8 }
};
// 이름 배열을 세로로 첫 번째 행과 첫 번째 열로 내보내기
worksheet.getCells().importArray(array2D, 0, 0);
// 엑셀 파일 저장
workbook.save("C:\\Files\\output.xlsx");
Cells 클래스는 2차원 정수 배열을 워크시트로 내보내는 importArray() 메서드를 제공합니다. API는 또한 이 메서드의 오버로드된 버전을 제공하여 2차원 문자열 배열 또는 이중 배열을 워크시트로 내보낼 수 있습니다.
Java에서 ArrayList를 Excel로 내보내기
아래에 언급된 단계에 따라 ArrayList에서 Excel로 데이터를 내보낼 수 있습니다.
- Workbook 클래스의 인스턴스 만들기
- Worksheet 클래스의 인스턴스에서 워크시트 가져오기
- 문자열 값을 포함하는 배열 목록 만들기
- 배열 목록과 함께 importArrayList() 메서드를 호출합니다.
- Workbook 클래스의 save() 메서드를 호출하여 출력 파일을 저장합니다.
다음 코드 샘플은 Java에서 ArrayList를 Excel로 내보내는 방법을 보여줍니다.
// 통합 문서 개체 초기화
Workbook workbook = new Workbook();
// 워크시트 참조 가져오기
Worksheet worksheet = workbook.getWorksheets().get(0);
// ArrayList 객체 인스턴스화
ArrayList<String> list = new ArrayList<String>();
// 문자열 값으로 목록에 몇 가지 이름 추가
list.add("Laurence Chen");
list.add("Roman Korchagin");
list.add("Kyle Huang");
list.add("Tommy Wang");
// 워크시트의 첫 번째 행과 첫 번째 열에서 ArrayList의 내용을 세로로 내보냅니다.
worksheet.getCells().importArrayList(list, 0, 0, true);
// 엑셀 파일 저장
workbook.save("C:\\Files\\Output.xlsx");
Cells 클래스의 importArrayList() 메서드는 데이터의 ArrayList를 워크시트로 내보냅니다. 데이터의 ArrayList를 포함하여 4개의 매개변수가 필요합니다. 다른 매개변수는 firstRow, firstColumn 및 isVertical입니다.
Java의 Excel로 사용자 정의 개체 컬렉션 내보내기
아래에 언급된 단계에 따라 사용자 지정 개체 컬렉션의 데이터를 Excel로 내보낼 수 있습니다.
- Workbook 클래스의 인스턴스 만들기
- Worksheet 클래스의 인스턴스에서 워크시트 가져오기
- 사용자 정의 개체의 배열 목록 만들기
- 배열 목록과 함께 importCustomObjects() 메서드를 호출합니다.
- Workbook 클래스의 save() 메서드를 호출하여 출력 파일을 저장합니다.
다음 코드 샘플은 Java에서 사용자 지정 개체 컬렉션을 Excel로 내보내는 방법을 보여줍니다.
// 새 통합 문서 초기화
Workbook book = new Workbook();
// 워크시트 참조 가져오기
Worksheet sheet = book.getWorksheets().get(0);
// 사람의 ArrayList 정의
List<Person> list = new ArrayList<Person>();
list.add(new Person("Mike", 25, "Software Engineer"));
list.add(new Person("Steve", 30, "Doctor"));
list.add(new Person("Billy", 35, "Teacher"));
// 워크시트로 내보낼 이름 및 연령 열만 선택하고 전체는 선택하지 않습니다.
sheet.getCells().importCustomObjects((Collection)list,
new String[] { "Name", "Age" }, // propertyNames
true, // isPropertyNameShown
0, // firstRow
0, // firstColumn
list.size(), // Number of objects to be exported
true, // insertRows
null, // dateFormatString
false); // convertStringToNumber
// 엑셀 파일 저장
book.save("C:\\Files\\Output.xlsx");
Cells 클래스의 importCustomObjects() 메서드는 사용자 지정 개체 목록을 내보내고 다음 매개 변수를 사용합니다. API는 또한 더 적은 수의 매개변수를 사용하는 이 메서드의 오버로드된 버전을 제공합니다.
- 목록: 사용자 정의 개체 모음
- propertyName: 내보낼 특정 속성의 이름을 지정합니다. null이면 객체의 모든 속성을 내보냅니다.
- isPropertyNameShown: 속성 이름을 첫 번째 행으로 내보낼지 여부를 나타냅니다.
- firstRow: 내보낼 첫 번째 셀의 행 번호
- firstColumn: 내보낼 첫 번째 셀의 열 번호
- rowNumber: 내보낼 행 수
- insertRows: 데이터에 맞게 추가 행을 추가할지 여부를 나타냅니다.
- dataFormatString: 셀의 날짜 형식 문자열
- convertStringToNumber: 이 메서드가 문자열을 숫자로 변환하려고 하는지 여부를 나타냅니다.
Java에서 병합된 셀을 사용하여 Excel로 데이터 내보내기
아래에 언급된 단계에 따라 개체 컬렉션의 데이터를 병합된 셀이 포함된 워크시트로 내보낼 수 있습니다.
- Workbook 클래스의 인스턴스 만들기 with template file path
- Worksheet 클래스의 인스턴스에서 워크시트 가져오기
- 객체의 배열 목록 만들기
- ImportTableOptions 클래스의 인스턴스 만들기
- 배열 목록과 함께 importCustomObjects() 메서드를 호출합니다.
- Workbook 클래스의 save() 메서드를 호출하여 출력 파일을 저장합니다.
다음 코드 샘플은 Java에서 병합된 셀이 있는 Excel 워크시트로 사용자 정의 개체 컬렉션을 내보내는 방법을 보여줍니다.
// 기존 통합 문서 열기.
Workbook workbook = new Workbook("C:\\Files\\SampleMergedTemplate.xlsx");
// 워크시트 참조 가져오기
Worksheet sheet = workbook.getWorksheets().get(0);
// ArrayList 객체 인스턴스화
List<Product> productList = new ArrayList<Product>();
// 제품 컬렉션 만들기
for (int i = 0; i < 3; i++)
{
Product product = new Product(i, "Product - " + i);
productList.add(product);
}
// 테이블 가져오기 옵션 정의
ImportTableOptions tableOptions = new ImportTableOptions();
// CheckMergedCells 속성을 true로 설정
tableOptions.setCheckMergedCells(true);
tableOptions.setFieldNameShown(false);
// Excel 템플릿으로 데이터 내보내기(두 번째 행, 첫 번째 열)
sheet.getCells().importCustomObjects((Collection)productList, 1, 0, tableOptions);
// 엑셀 파일 저장
workbook.save("C:\\Files\\Output.xlsx", SaveFormat.XLSX);
ImportTableOptions 클래스는 데이터를 셀로 내보내기 위한 여러 옵션을 제공합니다. setCheckMergedCells는 병합된 셀을 확인하는지 여부를 나타냅니다. setFieldNameShown 속성은 필드 이름을 내보낼지 여부를 나타냅니다.
Java의 한 Excel 파일에서 다른 파일로 행과 열 복사
아래에 언급된 단계에 따라 프로그래밍 방식으로 한 Excel 파일에서 다른 파일로 행과 열을 쉽게 복사할 수 있습니다.
- Workbook 클래스의 인스턴스 만들기 with source workbook input file
- Workbook 클래스의 인스턴스 만들기 for destination workbook
- Worksheet 클래스의 별도 인스턴스에서 원본 및 대상 워크시트 가져오기
- 원본 워크시트 셀을 사용하여 대상 워크시트의 copyRows() 메서드를 호출합니다.
- Workbook 클래스의 save() 메서드를 호출하여 대상 통합 문서 출력 파일을 저장합니다.
다음 코드 샘플은 Java를 사용하여 한 Excel 파일에서 다른 Excel 파일로 행과 열을 복사하는 방법을 보여줍니다.
// 소스 엑셀 파일을 엽니다.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");
// 대상 Excel 파일을 인스턴스화합니다.
Workbook destWorkbook = new Workbook();
// 원본 통합 문서의 첫 번째 워크시트를 가져옵니다.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);
// 대상 통합 문서의 첫 번째 워크시트를 가져옵니다.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);
// 원본 통합 문서의 첫 번째 워크시트의 모든 행을 복사합니다.
// 대상 통합 문서의 첫 번째 워크시트입니다.
desWorksheet.getCells().copyRows(srcWorksheet.getCells(), 0, 0, srcWorksheet.getCells().getMaxDisplayRange().getRowCount());
// 엑셀 파일을 저장합니다.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");
한 Excel 파일에서 다른 Excel 파일로 특정 행을 복사할 수 있습니다. 다음 코드 샘플은 Java를 사용하여 한 Excel 파일에서 다른 Excel 파일로 특정 행을 복사하는 방법을 보여줍니다.
// 소스 엑셀 파일을 엽니다.
Workbook srcWorkbook = new Workbook("C:\\Files\\Source_Workbook.xlsx");
// 대상 Excel 파일을 인스턴스화합니다.
Workbook destWorkbook = new Workbook();
// 원본 통합 문서의 첫 번째 워크시트를 가져옵니다.
Worksheet srcWorksheet = srcWorkbook.getWorksheets().get(0);
// 대상 통합 문서의 첫 번째 워크시트를 가져옵니다.
Worksheet desWorksheet = destWorkbook.getWorksheets().get(0);
// 원본 통합 문서의 두 번째 행을 대상 통합 문서의 첫 번째 행에 복사합니다.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 1, 0);
// 원본 통합 문서의 네 번째 행을 대상 통합 문서의 두 번째 행에 복사합니다.
desWorksheet.getCells().copyRow(srcWorksheet.getCells(), 3, 1);
// 엑셀 파일을 저장합니다.
destWorkbook.save("C:\\Files\\Destination_Workbook.xlsx");
copyRows() 메서드는 전체 행의 데이터와 형식을 복사합니다. 소스 행 인덱스, 대상 행 인덱스 및 복사된 행 번호와 함께 복사할 소스 워크시트 셀을 입력 매개변수로 사용합니다. API는 또한 CopyOptions 및 PasteOptions을 사용하여 행을 복사하기 위해 이 메서드의 오버로드된 버전을 제공합니다.
마찬가지로 copyColumn() 또는 copyColumns() 메서드를 사용하여 한 Microsoft Excel 문서에서 다른 문서로 열 데이터를 복사할 수 있습니다.
Java에서 JSON 데이터를 Excel로 내보내기
아래에 언급된 단계에 따라 JSON 파일에서 Excel로 데이터를 쉽게 내보낼 수 있습니다.
- Workbook 클래스의 인스턴스 만들기
- Worksheet 클래스의 인스턴스에서 워크시트 가져오기
- JSON 파일 읽기
- CellsFactory 클래스의 인스턴스 생성
- createStyle() 메서드를 호출하여 스타일 시작
- 가로 맞춤, 글꼴 색상 등 다양한 스타일 속성을 설정합니다.
- JsonLayoutOptions 클래스의 인스턴스 생성
- 스타일 개체로 제목 스타일 설정
- 배열을 테이블 속성으로 true로 설정
- JSON 입력 및 JsonLayoutOptions를 사용하여 JsonUtility.importData() 메서드를 호출합니다.
- Workbook 클래스의 save() 메서드를 호출하여 출력 파일을 저장합니다.
다음 코드 샘플은 Java를 사용하여 JSON 파일에서 Excel로 데이터를 내보내는 방법을 보여줍니다.
// 통합 문서 개체 인스턴스화
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.getWorksheets().get(0);
// JSON 파일 읽기
File file = new File("C:\\Files\\sample.json");
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String jsonInput = "";
String tempString;
while ((tempString = bufferedReader.readLine()) != null) {
jsonInput = jsonInput + tempString;
}
bufferedReader.close();
// 스타일 설정
CellsFactory factory = new CellsFactory();
Style style = factory.createStyle();
style.setHorizontalAlignment(TextAlignmentType.CENTER);
style.getFont().setColor(Color.getCyan());
style.getFont().setBold(true);
// JsonLayoutOptions 설정
JsonLayoutOptions options = new JsonLayoutOptions();
options.setTitleStyle(style);
options.setArrayAsTable(true);
// JSON 데이터 내보내기
JsonUtility.importData(jsonInput, worksheet.getCells(), 0, 0, options);
// 엑셀 파일 저장
workbook.save("C:\\Files\\Output.xlsx");
{
"quiz": {
"sport": {
"q1": {
"question": "Which one is correct team name in NBA?",
"answer": "Huston Rocket"
}
},
"maths": {
"q1": {
"question": "5 + 7 = ?",
"answer": "12"
},
"q2": {
"question": "12 - 8 = ?",
"answer": "4"
}
}
}
}
CellsFactory 클래스는 Cells 모델의 클래스를 인스턴스화합니다. 이 클래스의 createStyle() 메소드는 Style 클래스의 새로운 스타일 객체를 생성합니다. Style 클래스를 사용하면 글꼴, 색상, 정렬, 테두리 등과 같은 Excel 문서의 표시 스타일을 설정할 수 있습니다.
JsonLayoutOptions 클래스는 JSON 레이아웃 유형의 옵션을 제공합니다. 이 클래스의 setTitleStyle 메소드는 제목의 정의된 스타일을 설정하는 데 사용됩니다. setArrayAsTable 메서드를 사용하면 Array를 테이블로 처리할 수 있습니다.
API는 JSON 처리를 위해 JsonUtility 클래스를 제공합니다. 이 클래스의 importData() 메서드는 JSON 문자열을 내보내고 다음 매개변수를 사용합니다.
- json: JSON 문자열
- 세포: 세포
- 행: 행 인덱스
- column: 열 인덱스
- 옵션: JSON 문자열을 내보내는 옵션
Java를 사용하여 Excel에서 CSV 데이터 가져오기
아래에 언급된 간단한 단계에 따라 CSV 파일에서 Excel로 데이터를 내보낼 수 있습니다.
- LoadFormat을 사용하여 LoadOptions 클래스의 인스턴스 만들기
- Workbook 클래스의 인스턴스 만들기 with CSV file path and LoadOptions object
- Workbook 클래스의 save() 메서드를 호출하고 출력 파일을 저장합니다.
다음 코드 샘플은 Java를 사용하여 CSV 파일에서 Excel로 데이터를 내보내는 방법을 보여줍니다.
// CSV LoadFormat으로 LoadOptions를 초기화합니다.
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);
// 통합 문서 개체로 CSV 파일 열기
Workbook workbook = new Workbook("C:\\Files\\Sample.csv", loadOptions);
// 파일을 Excel 문서로 저장
workbook.save("C:\\Files\\Output.xlsx");
id,language,edition,author,streetAddress,city,state,postalCode
01,Java,third,Herbert Schildt,126,San Jone,CA,394221
02,C++,second,EAAAA,126,San Jone,CA,394221
03,.Net,second,E.Balagurusamy,126,San Jone,CA,394221
API의 LoadOptions 클래스는 파일을 로드하는 옵션을 제공합니다. LoadFormat 클래스에는 로드 파일 형식을 나타내는 상수가 포함되어 있습니다.
무료 라이선스 받기
임시 무료 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.
결론
이 기사에서는 Java에서 데이터를 Excel로 내보내는 방법을 배웠습니다. 또한 프로그래밍 방식으로 배열, JSON 또는 CSV 파일의 데이터를 Excel로 내보내는 방법도 배웠습니다. 또한 Java를 사용하여 한 Excel 파일에서 다른 파일로 행과 열을 복사하는 방법을 배웠습니다. 문서를 사용하여 Java API용 Aspose.Cells에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼에서 언제든지 문의해 주십시오.
또한보십시오
자주 묻는 질문
Java에서 데이터를 XLSX 파일로 내보내는 방법은 무엇입니까? Java 애플리케이션에서 쉽게 통합할 수 있는 Aspose.Cells for Java API를 사용하여 배열, 개체 컬렉션, JSON 및 CSV의 데이터를 XLSX 파일로 쉽게 내보낼 수 있습니다.
JSON에서 Excel로 데이터를 내보내려면 어떻게 합니까? Aspose.Cells API는 JSON 파일에서 Java의 Excel로 데이터를 내보내는 JsonUtility를 제공합니다. JSON 데이터를 Java로 Excel로 내보내기 섹션에서 간단한 단계를 찾을 수 있습니다.
Java에서 CSV에서 Excel로 데이터를 내보내려면 어떻게 합니까? Aspose.Cells API를 사용하여 CSV 파일을 로드하고 XLSX로 저장할 수 있습니다. 자바를 사용하여 Excel에서 CSV 데이터 가져오기 섹션에서 간단한 단계를 찾을 수 있습니다.