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

GcExcel로 사용자 경험 개선하기 > 블로그 & Tips

본문 바로가기

.NET API

블로그 & Tips

GcExcel로 사용자 경험 개선하기

페이지 정보

작성자 GrapeCity 작성일 2021-11-30 11:37 조회 1,452회 댓글 0건

본문

개발자는 데스크톱과 웹 응용 프로그램에서 문서 조작과 관련된 많은 작업을 수행해야 합니다. 다음과 같은 작업을 예로 들 수 있습니다.

  • 데이터 입력을 위한 PDF 양식 생성

  • Excel 형식으로 표 형식 데이터 내보내기

  • PDF에서 입력한 데이터 내보내기

이러한 작업을 수행하기 위해 Microsoft Office Interop 라이브러리를 사용할 수 있습니다. 하지만 몇 가지 단점이 있습니다. 예를 들어, 응용 프로그램을 실행하는 모든 클라이언트 시스템에는 Microsoft Office용 라이선스가 필요하며 동일한 Microsoft Excel 버전이 설치되어 있어야 합니다.

또한 Microsoft Office 응용 프로그램은 UI(사용자 인터페이스) 응용 프로그램이고 API는 Windows 운영 체제에서만 작동합니다.(작동하더라도 속도가 느리죠)

엔터프라이즈 앱을 위한 굉장히 빠른 소규모 API인 GrapeCity Excel API를 사용하면 Microsoft Excel을 사용하지 않고 Excel 스프레드시트를 빠르고 효율적으로 만들 수 있습니다. 또한 이러한 API는 여러 플랫폼에서 C# 및 Java 응용 프로그램을 지원합니다.

GrapeCity 문서 API로 해결할 수 있는 문제를 보여 주는 사용 사례를 몇 가지 살펴보겠습니다. 다음 코드 예제는 보여 주기 위해 C#으로 작성되었는데, Java에서도 동일한 기능을 구현할 수 있습니다.


사용 사례 1

이 사용 사례에서는 기존 문서 관리와 새로운 응용 프로그램 간의 간극을 해소해 보겠습니다.

고객이 Excel 스프레드시트를 사용하여 수년 동안 송장을 만들고 저장했다고 가정해 보겠습니다. 고객은 최근에 송장 처리를 위해 새 웹 응용 프로그램을 구입했고 기록 데이터 전체를 우리 시스템으로 가져오고 싶어 합니다.

우리는 Excel 스프레드시트를 구문 분석하고 프로그래밍 방식으로 Excel을 PDF로 변환할 수 있는 문서 API를 찾고자 합니다. GcExcel은 이러한 스프레드시트 문제를 해결할 수 있는 완벽한 솔루션입니다.

서버 또는 데스크톱 응용 프로그램에서 GcExcel을 사용하여 Microsoft Excel과 호환 가능한 스프레드시트를 생성, 조작, 변환 및 공유할 수 있습니다. 또한 거의 모든 응용 프로그램 및 플랫폼에서 호출할 수 있습니다.


Excel을 JSON으로 구문 분석

고객의 기존 Excel 형식 송장이 다음과 같은 모양이라고 가정해 보겠습니다.

송장

GcExcel .NET Core를 사용하여 통합 문서를 가져와 해당 통합 문서에서 데이터를 수집합니다. 그 방법은 다음과 같습니다.

  • 셀 F1의 송장 번호를 문자열 데이터 유형으로 만듭니다.

  • 셀 범위 B5~B9의 "Bill To" 정보를 배열로 만듭니다.

  • 셀 범위 E7~F16의 항목이 JSON 배열 객체인지 확인합니다.

이러한 셀의 값을 모두 얻은 후에는 JSON 객체로 래핑합니다.

Workbook workbook = new Workbook();  
string source = "SimpleInvoice.xlsx";  
workbook.Open (source);  
IWorksheet worksheet = workbook.Worksheets[0];  
​
Workbook workbook = new Workbook();  
workbook.Open("SimpleInvoice.xlsx");  
IWorksheet worksheet = workbook.Worksheets[0];  
​
var invoice = new Invoice()  
​
var invoiceNumberRange = worksheet.Range["F1:F1"];  
invoice.invoice_number = $"{invoiceNumberRange.Cells[0].Value}";  
​
var billToRange = worksheet.Range["B5:B9"];  
int rowCount = billToRange.Rows.Count;  
String billTo = "";  
for (int i = 0; i < rowCount; i++)  
{  
  billTo = billTo + billToRange.Cells[i].Value + " ";  
}  
invoice.bill_to = billTo;  
​
var items = new List<InvoiceItem>();  
​
var itemsRange = worksheet.Range["E7:H16"];  
int columnCount = itemsRange.Columns.Count;  
rowCount = itemsRange.Rows.Count;  
for (int i = 0; i < rowCount; i++)  
{  
  if (itemsRange.Cells[i, 0].Value == null)  
  {  
      break;  
  }  
​
  var item = new InvoiceItem();  
  item.item_number = (string) itemsRange.Cells[i, 0].Value;  
  item.description = (string) itemsRange.Cells[i, 1].Value;  
  item.price = (double) itemsRange.Cells[i, 2].Value;  
  item.quantity = (double) itemsRange.Cells[i, 3].Value;  
​
  items.Add (item);  
}  
​
invoice.items = (List<InvoiceItem>)items;            
​
String jsonString = JsonSerializer.Serialize(invoice);  
File.WriteAllText("invoice.json", jsonString);  


데이터를 데이터베이스에 저장하거나 JSON 파일을 사용하여 어떠한 형식으로든 쉽게 변환할 수 있습니다.


PDF로 Excel 저장

Excel 파일을 가져온 다음 고객이 안전한 관리를 위해 원래 Excel 파일의 PDF 버전을 생성하려고 할 수 있습니다.

GcExcel을 사용하면 Excel을 PDF로 쉽게 변환할 수 있습니다. 통합 문서를 만들 다음 Excel 파일을 열고 PDF로 저장하면 됩니다.

Workbook workbook = new Workbook();  
string source = "SimpleInvoice.xlsx";  
workbook.Open (source);  
workbook.Save("SimpleInvoice.pdf");


사용 사례 2

이 사용 사례에서는 원하는 속도로 채울 수 있는 PDF 입력 양식을 만들어 보겠습니다.

여기서는 테니스 클럽의 멤버십을 관리하는 응용 프로그램을 빌드합니다. 이 응용 프로그램을 사용하여 멤버십을 신청할 때 사용자는 개인 정보를 입력해야 합니다.

따라서 편집 가능한 PDF 양식을 작성할 수 있으면 유용할 것입니다. 이러한 양식이 있으면 사용자는 인터넷에 액세스 여부와 상관없이 양식을 다운로드하고 작성할 수 있습니다. 데이터 입력을 마치면 사용자는 문서를 온라인으로 업로드할 수 있습니다.

양식 입력 내용을 구문 분석하여 응용 프로그램에 저장할 수 있습니다. 그러면 클럽 관리자는 단일 Excel 스프레드시트에서 모든 회원 정보를 포함하는 보고서를 생성할 수 있습니다.

GcExcel을 사용하면 작성할 수 있는 PDF 양식을 신속하게 만들고 PDF 양식의 입력 내용을 Excel 스프레드시트로 빠르게 구문 분석할 수 있습니다.

다음과 같은 템플릿 두 개만 있으면 됩니다.

  • PDF 양식을 만들려면 다양한 필드가 있는 양식 템플릿이 필요합니다. 양식 필드가 있는 Excel 템플릿을 만드는 자세한 방법은 GcExcel 문서를 참조하세요.

  • PDF 양식에서 구문 분석된 데이터를 바인딩하려면 데이터 바인딩 필드가 있는 데이터 소스 템플릿이 필요합니다. 데이터 바인딩 필드가 있는 Excel 템플릿을 만드는 자세한 방법은 GcExcel 문서를 참조하세요.


PDF 양식 작성

PDF 양식을 작성하려면 다음과 같은 Excel 양식 템플릿을 만듭니다.

정보


응용 프로그램에서 Excel 파일을 열고 템플릿을 처리한 다음 Excel을 PDF로 저장합니다.

  var workbook = new GrapeCity.Documents.Excel.Workbook();      
  workbook.Open("Template_MemberInfo.xlsx");  
  workbook.ProcessTemplate();    
  workbook.Save("MemberInfo.pdf");


PDF 양식을 JSON으로 구문 분석

클럽 회원은 PDF 파일을 다운로드하여 작성한 후 양식을 응용 프로그램에 업로드합니다. 그런 다음 모든 회원의 양식 입력 내용을 구문 분석하여 해당 정보를 JSON 객체로 저장할 수 있습니다.

양식 입력 내용을 가져오려면 템플릿의 각 필드에 이름을 지정해야 합니다. 예를 들어, 다음과 같이 이름과 성을 입력하기 위한 양식 필드를 정의해야 합니다.

  {{(form={**"name":"first_name"**,"type":"text", "required": true})}}  
  {{(form={**"name":"last_name"**,"type":"text", "required": true})}}  


다음 코드를 사용하면 필드 이름을 기준으로 양식 필드 값을 읽을 수 있습니다.

  var member = new MemberInfos();  
  foreach (Field field in doc.AcroForm.Fields)  
  {  
      switch (field.Name)  
      {  
      case "first_name":  
          member.**first_name** = (String) field.Value;  
          break;  
      case "last_name":  
          member.**last_name** = (String) field.Value;  
          break;  
      ...                      
      default:  
          break;  
      }  
  }    


그런 다음 필드 값을 JSON 파일에 쓸 수 있습니다.

  var billPayList = new ArrayList();  
  foreach (string  
              inputFile  
              in  
              Directory  
                  .EnumerateFiles(Path.Combine("Resources", "Uploads"),  
                  "*.pdf")  
    )  
  {  
              billPayList.Add(GatherData.getDataFromPdf(inputFile));  
  }  
  string jsonString = JsonSerializer.Serialize(billPayList);


Excel 스프레드시트 생성

전체 회원의 양식 입력 내용이 포함된 Excel 스프레드시트를 생성하기 위해 다음과 같은 Excel 데이터 소스 템플릿을 만듭니다.

excel

이 템플릿에서는 데이터 바인딩 필드를 정의하는데, 필드 이름은 이전 단계에서 만든 JSON 파일의 키와 일치해야 합니다. 예를 들어, JSON 파일에 키-값 쌍 {"first_name":"Jone"}이 있으면 데이터 바인딩 필드에도 있어야 합니다.

첫 번째 데이터 바인딩 필드에서 셀 범위를 R=A3:C8로 정의하여 첫 번째 클럽 회원의 정보에 대해 데이터를 셀 A3에서 셀 C8로 확장합니다. 다음 회원의 정보는 A9에서 시작하여 C14에서 끝나는 식으로 입력됩니다.

다음 단계에 따라 Excel 스프레드시트를 생성합니다. 템플릿 파일을 여는 것으로 시작합니다.

var workbook = new GrapeCity.Documents.Excel.Workbook();  
workbook.Open (Path.Combine("Resources", "Templates","Template_MemberReport.xlsx"));


그런 다음 AddDataSource 메서드를 사용하여 JSON 데이터를 데이터 소스 객체에 추가합니다.

var datasource =  
    JsonSerializer.Deserialize<List<BillPayInfos>>(File.ReadAllText(dataSourceFile));            
workbook.AddDataSource("ds", datasource);  


템플릿을 처리하여 Excel 스프레드시트에 저장합니다.

workbook.ProcessTemplate();  
workbook.Save(Path.Combine("Output", "MemberReport.xlsx"));


이 코드는 다음과 같은 회원 보고서를 생성합니다.

보고서


사용 사례 3

이 사용 사례에서는 데이터 입력을 위해 여러 메서드를 통합할 것입니다.

부품 수리, 시스템 복구 등의 서비스를 제공하는 랩탑 서비스 업체를 위한 멀티 테넌트 비즈니스 응용 프로그램을 빌드 중이라고 가정해 보겠습니다. 고객이 수리를 위해 랩탑을 보내면 이 업체에서는 소프트웨어 서비스 주문을 외주업체로 아웃소싱하고 하드웨어 서비스 주문은 다른 외주업체로 아웃소싱합니다.

이 랩탑 서비스 업체에는 외주업체가 다운로드하여 작업과 비용을 입력할 수 있는 Excel 비용 양식이 필요합니다. 비용 파일을 작성하여 다시 업로드하면 응용 프로그램에서 각 고객에 대한 PDF 송장을 생성합니다.

GcExcel을 사용하면 각 외주업체에 대해 사용자 정의된 Excel 비용 양식을 프로그래밍 방식으로 생성할 수 있습니다. 그런 다음 각 외주업체가 작성한 양식을 반환하면 해당 양식의 데이터를 JSON 배열로 추출할 수 있습니다. 데이터 소스 템플릿을 사용하여 각 JSON 개체에 대한 Excel 스프레드시트를 배열로 빠르게 생성하여 고객에게 보낼 Excel 파일을 PDF로 저장할 수 있습니다.


사용자 정의된 Excel 생성

서비스 주문 정보를 저장하기 위한 JSON 파일이 있다고 가정해 보겠습니다.(설명을 위해 데이터베이스를 사용할 수 있음) 먼저 Excel 데이터 소스 템플릿을 생성합니다.

사용자 정의

응용 프로그램에서 템플릿 파일을 열고 JSON 파일의 데이터를 이 템플릿으로 로드한 후 외주업체에서 다운로드할 수 있는 Excel 비용 양식을 생성합니다. 아래 코드 조각은 이 작업을 수행하기 위한 방법을 보여 줍니다.

workbook  
  .Open(Path  
      .Combine("Resources",  
      "Templates",  
      "Template_Service_Cost.xlsx"));  
​
workbook.AddDataSource("ds", softwareOrderList);  
workbook.ProcessTemplate();  
workbook  
  .Save(Path.Combine("Downloads", "subcontract_software_cost.xlsx"));  


외주업체에서 Excel 비용 양식을 작성하여 업로드하면 사용 사례 1에서 했던 것처럼 Excel의 데이터를 JSON으로 구문 분석할 수 있습니다.


PDF 송장 생성

고객의 PDF 송장을 생성하기 위해 다음과 같이 다른 Excel 데이터 소스 템플릿을 만듭니다.

pdf

비용 양식에서 추출된 JSON 데이터를 사용하여 템플릿을 채우고 통합 문서를 생성한 다음 PDF로 저장합니다.

  var workbook = new GrapeCity.Documents.Excel.Workbook();  
​
      var invoiceList =  
          JsonSerializer  
              .Deserialize<List<ServiceOrder>>(File  
                  .ReadAllText(Path  
                      .Combine("Resources", "DataSource", "serviceOrders.json")));  
​
      foreach (var invoice in invoiceList)  
      {  
          workbook  
              .Open(Path  
                  .Combine("Resources",  
                  "Templates",  
                  "Template_Invoice.xlsx"));  
​
          workbook.AddDataSource("ds", invoice);  
          workbook.ProcessTemplate();  
          workbook  
              .Save(Path  
                  .Combine("Downloads", $"Invoice_{invoice.order_id}.pdf"));  


이 코드는 개별 고객에 대한 송장을 생성합니다.

gcpdf

결론

GcExcel API를 사용하여 Excel 파일에서 프로그래밍 방식으로 PDF를 생성하는 방법, Excel 또는 PDF 파일의 데이터를 JSON으로 구문 분석하는 방법, 템플릿을 사용하여 Excel 파일에서 PDF 양식을 만드는 방법과 PDF 양식에서 Excel로 데이터를 전송하는 방법을 보여 주는 세 가지 사용 사례를 살펴보았습니다.

GcExcel API는 필요한 기능을 제공합니다. API는 응용 프로그램 수준을 한 차원 높이고 미래의 성공을 위해 준비시킵니다. GrapeCity는 개발자를 위해 API를 설계했으며 API는 쉽게 사용할 수 있습니다.

이 게시물에서 다룬 사용 사례에 대한 C# 코드를 모두 살펴보고 따라해 보려면 GitHub 리포지토리를 방문하세요.

문서 API를 사용하여 수행할 수 있는 기타 작업을 살펴보려면 아래 링크를 살펴보세요.





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

 


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

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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