! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

.NET 및 Java 문서 API를 사용하여 Excel XLSX에서 프로그래밍 방식으로 JSON 가져오기 > 온라인 스터디

본문 바로가기

.NET 및 Java 문서 API를 사용하여 Excel XLSX에서 프로그래밍 방식으로 JSON 가져오기

페이지 정보

작성자 GrapeCity 작성일 2022-10-12 11:51 조회 175회 댓글 0건

본문

프로그래밍할 때 데이터는 어디에나 있는데 응용 프로그램 간에 데이터를 저장, 전송 및 관리하는 것이 가장 큰 문제 중 하나입니다. 오랜 기간 프로그래머, 개발자 및 IT 전문가는 XML 및 CSV를 사용하여 응용 프로그램 간에 데이터를 교환해 왔습니다.

그러나 API 코드 프로그래밍과 웹 서비스가 등장하면서 사용하기 쉬운 프로세스 덕분에 JSON이 널리 사용되기 시작했습니다. JSON은 텍스트 기반으로 가볍고, 추가 구문 분석 코드가 필요 없는, 쉽게 구문 분석이 가능한 데이터 형식을 가지고 있으며, 처리 속도가 빠르고, 많은 양의 데이터를 처리할 수 있으며 시스템에 독립적입니다.

데이터를 전송하고 응용 프로그램 간 통신을 빌드하기 위해 개발된 JSON은 이제 데이터(예: 웹 사이트에 등록된 사용자 수 ) 저장, 응용 프로그램 구성 저장, 데이터 유효성 검사, 복잡한 데이터 모델을 예측 가능하고 사람이 읽을 수 있는 텍스트로 간소화 등을 비롯하여 여러 가지 데이터 시나리오에 사용됩니다.

사용이 늘어나고 데이터가 기본 개체 형식으로 사용자에게 노출됨에 따라 JSON을 Excel 등과 같은 구조적 (표 형식) 데이터로 제출해야 할 필요가 종종 생깁니다. (적어도 JSON 파일이 너무 큰 상황에서는) 각 데이터 객체와 그 값을 JSON에서 Excel로 수동으로 복사하는 것은 좋은 솔루션이 아닙니다. 따라서 우리는 GcExcel .NETJava를 사용하여 JSON 데이터를 Excel 파일로 가져오기 위해 프로그래밍 방식으로 접근했습니다.


사용 사례

대부분의 기업에서는 ERP, CRM, SCM 등과 같은 소프트웨어 솔루션을 사용하여 핵심 프로세스를 자동화합니다. 이러한 시스템은 제품 세부 정보, 매출 통계, 등록된 사용자, 고객, 직원 및 기타 수많은 데이터를 비롯하여 엄청난 양의 비즈니스 정보를 저장합니다.

여러분이 생산, 재고 및 여러 제품의 매출을 추적하기 위해 기존 시스템에 이러한 솔루션 중 하나를 포함하고 있는 기업의 개발자라고 생각해 보겠습니다. 해당 솔루션은 저장된 정보를 가져오는 API를 제공하지만 이 API가 반환하는 데이터는 JSON 형식입니다. 따라서 JSON 데이터를 위한 Excel 파일을 생성하기 위해 시스템에 통합할 수 있는 솔루션을 찾고 있습니다.

이 블로그에서는 아래 표시된 것처럼 JSON 형식으로 제공할 수 있는 제품 재고 데이터에 대한 Excel 파일을 생성해 보겠습니다.

json

이러한 JSON 파일은 다음과 같은 방법으로 Excel 파일로 가져올 수 있습니다.

  1. 데이터를 통합 문서에 바인딩하고 표 또는 셀 범위에 표시합니다.

  2. 보고서(또는 Excel 템플릿)에서 데이터 필드를 작성합니다.


GcExcel에서 .NETJava 용으로 제공하는 간단한 API를 사용하여 Excel로 가져오는 방법을 살펴보겠습니다.


통합 문서에 JSON 소스 바인딩

GcExcel에서는 IWorksheet 인터페이스의 DataSource 속성을 사용하여 data-bound 보고서에 대한 지원을 제공합니다. JSON 소스에서 데이터를 가져오려면 JSON 문자열 매개 변수를 허용하는 JsonDataSource 클래스의 개체에 이 속성을 바인딩합니다. JSON에 명명된 목록 또는 배열이 포함되어 있는 경우 표 바인딩 옵션을 사용하고 그렇지 않으면 시트 바인딩을 사용합니다. 이는 GcExcel의 표가 JSON의 목록 이름 또는 배열에 해당하는 바인딩 경로를 허용하기 때문입니다.

이 블로그에서 참조한 JSON 데이터에 "data" 배열이 포함되어 있기 때문에 아래 코드 조각에 표시된 것처럼 Excel 파일에서 표를 바인딩합니다.

C# .NET

//create a new workbook
var workbook = new GrapeCity.Documents.Excel.Workbook();

//Read the JSON data and store in a string
string jsonText = string.Empty;
using (Stream stream = GetResourceStream("json\\inventory.json"))
using (StreamReader reader = new StreamReader(stream))
{
jsonText = reader.ReadToEnd();
}
​
// Create a JsonDataSource from the JSON string
var datasource = new JsonDataSource(jsonText);
​
//Add JSON datasource to the Workbook
worksheet.DataSource = datasource;
​
//Create a table
ITable table = worksheet.Tables.Add(worksheet.Range["A1:E10"], false);
table.AutoGenerateColumns = true;
​
//Bind the array from the JSON to the Table using the Binding path property
table.BindingPath = "data";
​
. . .
//Add formtting etc.
. . .
​
// Save to an excel file
workbook.Save("InventoryList.xlsx");

Java

//create a new workbook
var workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
worksheet.setName("Table Binding");
​
//Read json data into a stream
String jsonText = "";
try {
      
   String fileName = "src/jsonDataSource/resources/inventory.json";
​
   try (InputStream stream = new FileInputStream(fileName)) {
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = stream.read(buffer)) != -1) {
    result.write(buffer, 0, length);
}
​
jsonText = result.toString("UTF-8");
}
} catch (Exception e) {
e.printStackTrace();
}
​
// Create a JsonDataSource from the JSON string
var datasource = new JsonDataSource(jsonText);
​
//Add JSON datasource to the Workbook
worksheet.setDataSource(datasource);
​
//Create a table
ITable table = worksheet.getTables().add(worksheet.getRange("A1:E10"), false);
table.setAutoGenerateColumns(true);
​
//Bind the array from the JSON to the Table using the Binding path property
table.setBindingPath("data");
​
. . .
//Add formtting etc.
. . .
​
//Save the workbook
workbook.save("InventoryList.xlsx");


위 코드를 실행하면 JSON 파일의 데이터가 Excel 파일에 아래와 같이 나타납니다.

제품 재고 목록


전체 코드를 보려면 .NET | Java 샘플을 다운로드하세요.

GcExcel에서 데이터 바인딩에 대한 자세한 내용 아래 링크를 통해 확인해 보세요.


Excel 템플릿의 JSON 데이터 가져오기

GcExcel에서는 매우 효율적이고 잘 디자인된 Excel 보고서를 만들 수 있도록 템플릿을 제공합니다. 이러한 보고서는 템플릿 레이아웃이 데이터 소스의 데이터로 채워질 때 의미가 있습니다. Excel 템플릿을 JSON 데이터 소스의 데이터로 채우려면 JsonDataSource 클래스의 개체를 IWorkbook 인터페이스의 AddDataSource 메서드에 대한 인수로 사용합니다.

이 블로그에서 참조하는 JSON 파일의 데이터로 채우기 위해 아래와 같이 나타나는 Excel 템플릿을 만들었습니다.

재고 상태 대시보드

그리고 아래 코드를 사용하여 데이터를 템플릿 파일로 가져왔습니다.


C# .NET

//Create workbook and load the template file
var workbookTemplate= new GrapeCity.Documents.Excel.Workbook();
var template = GetResourceStream("template\\Inventorydashboard.xlsx");
workbookTemplate.Open(template);
​
//Read the JSON data and store in a string
jsonText = string.Empty;
using (Stream stream = GetResourceStream("json\\inventory.json"))
using (StreamReader reader = new StreamReader(stream))
{
jsonText = reader.ReadToEnd();
}
​
// Create a JsonDataSource from the JSON string
var datasource = new JsonDataSource(jsonText);
​
//Add JSON data source to the Workbook
workbookTemplate.AddDataSource("ds", datasource);
​
//Invoke to process the template
workbookTemplate.ProcessTemplate();
​
// Save to an excel file
workbookTemplate.Save("Inventory Status Dashboard.xlsx");
 

Java

//Create workbook and load the template file
Workbook workbookTemplate = new Workbook();
workbookTemplate.open("Inventorydashboard.xlsx");
​
//Read the JSON data and store in a string
String jsonText = "";
try {
      
   String fileName = "src/jsonDataSource/resources/inventory.json";
​
   try (InputStream stream = new FileInputStream(fileName)) {
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = stream.read(buffer)) != -1) {
    result.write(buffer, 0, length);
}
​
jsonText = result.toString("UTF-8");
}
} catch (Exception e) {
e.printStackTrace();
}
​
// Create a JsonDataSource from the JSON string
JsonDataSource datasource = new JsonDataSource(jsonText);
​
//Add JSON data source to the Workbook
workbookTemplate.addDataSource("ds", datasource);
​
​
//Invoke to process the template
workbookTemplate.processTemplate();
​
// Save to an excel file
workbookTemplate.save("Inventory Status Dashboard.xlsx");


위 코드 조각을 실행한 후 생성된 Excel 파일은 아래와 같이 나타납니다.


Excel

전체 코드를 보려면 .NET | Java 샘플을 다운로드하세요.


GcExcel을 사용하여 Excel 템플릿에서 데이터 소스 바인딩에 대한 자세한 내용은 아래 링크를 통해 확인해 보세요.


결론

GcExcel을 사용하면 JSON 데이터로 Excel 파일을 채우는 것 이외에도 JSON 데이터를 PDF, HTML 등과 같은 다른 형식으로 변환할 수 있습니다. 자세한 내용은 이어지는 문서에서 다룰 예정입니다. 계속 지켜봐 주세요!




지금 바로 GcExcel Java를 다운로드하여 직접 테스트해보세요!

 


지금 바로 GcExcel .NET을 다운로드하여 직접 테스트해보세요!

 
[이 게시물은 GrapeCity님에 의해 2022-10-12 14:19:43 Java & Kotlin API - 온라인 스터디에서 복사 됨]
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.