JSON verilerini bir Excel elektronik tablosuna dönüştürmek, raporlama veya yapılandırılmış bilgileri analiz etme sırasında sıkça ihtiyaç duyulan bir durumdur. Aspose.Words Cloud SDK for Java Java uygulamalarında bu dönüşümü basitleştiren güçlü bir bulut‑tabanlı API sağlar. Bu rehberde Java’da JSON’u XLSX formatına dönüştürmeyi adım adım inceleyecek, tam bir kod örneği, cURL ile eşdeğer REST çağrıları ve temel en iyi uygulama önerilerini ele alacağız. Sonunda herhangi bir JSON kaynağından XLSX dosyaları oluşturabilecek ve iç içe yapıları kolaylıkla yönetebileceksiniz.
Java Kullanarak JSON’dan XLSX Oluşturma - Tam Kod Örneği
Bu örnek, bir JSON dosyasını okuma, bir DOCX tablosu oluşturma ve bunu Aspose.Words Cloud SDK for Java kullanarak XLSX’e dönüştürmeyi gösterir.
import com.aspose.words.cloud.*;
import com.aspose.words.cloud.model.*;
import com.aspose.words.cloud.api.*;
import com.aspose.words.cloud.auth.*;
import com.fasterxml.jackson.databind.*;
import java.io.*;
import java.util.*;
public class JsonToXlsxConverter {
public static void main(String[] args) throws Exception {
// Initialize API
String clientId = "YOUR_CLIENT_ID";
String clientSecret = "YOUR_CLIENT_SECRET";
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
// Paths
String jsonPath = "data.json";
String tempDocxPath = "temp.docx";
String outputXlsxPath = "output.xlsx";
// Read JSON
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(new File(jsonPath),
mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
// Define column order (keys from first record)
List<String> columns = new ArrayList<>(records.get(0).keySet());
// Create empty DOCX in cloud
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
// Build table rows
TableRowInsert requestRow = new TableRowInsert();
// First row - header
TableRow headerRow = new TableRow();
List<TableCell> headerCells = new ArrayList<>();
for (String col : columns) {
TableCell cell = new TableCell();
cell.setText(col);
headerCells.add(cell);
}
headerRow.setTableCellList(headerCells);
// Insert header row at position 0
InsertTableRowRequest insertHeader = new InsertTableRowRequest("temp.docx", 0, headerRow);
wordsApi.insertTableRow(insertHeader);
// Insert data rows
int rowIndex = 1;
for (Map<String, Object> rec : records) {
TableRow dataRow = new TableRow();
List<TableCell> dataCells = new ArrayList<>();
for (String col : columns) {
TableCell cell = new TableCell();
cell.setText(String.valueOf(rec.get(col)));
dataCells.add(cell);
}
dataRow.setTableCellList(dataCells);
InsertTableRowRequest insertRow = new InsertTableRowRequest("temp.docx", rowIndex, dataRow);
wordsApi.insertTableRow(insertRow);
rowIndex++;
}
// Convert DOCX to XLSX
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);
try (FileOutputStream fos = new FileOutputStream(outputXlsxPath)) {
fos.write(xlsxBytes);
}
}
}
Not: Bu kod örneği temel işlevselliği göstermektedir. Projenizde kullanmadan önce, dosya yollarını ve yapılandırma değerlerini gerçek ortamınıza uygun şekilde güncellediğinizden, tüm gerekli bağımlılıkların doğru şekilde yüklendiğinden emin olun ve geliştirme ortamınızda kapsamlı bir şekilde test edin. Herhangi bir sorunla karşılaşırsanız, lütfen resmi dokümantasyona başvurun veya destek ekibi ile iletişime geçin.
cURL Kullanarak REST API Üzerinden JSON’dan XLSX’e Dönüştürme
Aynı dönüşüm, Java kodu yazmadan doğrudan Aspose.Words Cloud REST API’sini çağırarak gerçekleştirilebilir.
- Erişim belirteci alın - API OAuth 2.0 kullanır.
curl -X POST "https://api.aspose.cloud/connect/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
- JSON dosyasını yükleyin (API bir DOCX kaynağı beklediği için önce bir yer tutucu DOCX yüklüyoruz).
curl -X PUT "https://api.aspose.cloud/v4.0/words/temp.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document" \
--data-binary "@temp.docx"
-
JSON’dan bir tablo oluştur - bu adım kod içinde SDK tarafından işlenir; REST API ile zaten tabloyu içeren önceden doldurulmuş bir DOCX yüklerdiniz.
-
DOCX’yi XLSX’e dönüştür.
curl -X GET "https://api.aspose.cloud/v4.0/words/temp.docx?format=xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.xlsx
Parametrelerin tam listesi için, resmi API belgelerine bakın.
JSON’u Java’da XLSX’e Dönüştürme - Kod Nasıl Çalışıyor
Aşağıda Java örneğindeki ana bölümlerin özlü bir özeti yer almaktadır.
- API Başlatma -
WordsApi wordsApi = new WordsApi(clientId, clientSecret);kimlik doğrulamalı bir istemci oluşturur.
WordsApi wordsApi = new WordsApi(clientId, clientSecret);
- JSON Okuma -
ObjectMapperJSON dosyasını orijinal alan sırasını koruyarak bir harita listesine dönüştürür.
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> records = mapper.readValue(
new File(jsonPath),
mapper.getTypeFactory().constructCollectionType(List.class, Map.class));
- Bulutta bir DOCX oluşturma -
CreateDocumentRequestboş bir DOCX oluşturur; bu DOCX tabloyu barındıracaktır.
CreateDocumentRequest createRequest = new CreateDocumentRequest("temp.docx");
wordsApi.createDocument(createRequest);
- Başlık satırını oluşturma - İlk kaydın anahtarları sütun sırasını tanımlar ve her anahtar bir başlık hücresi olur.
TableRow headerRow = new TableRow();
List<TableCell> headerCells = new ArrayList<>();
for (String col : columns) {
TableCell cell = new TableCell();
cell.setText(col);
headerCells.add(cell);
}
headerRow.setTableCellList(headerCells);
InsertTableRowRequest insertHeader = new InsertTableRowRequest("temp.docx", 0, headerRow);
wordsApi.insertTableRow(insertHeader);
- Veri satırlarını ekleme - Her JSON nesnesi bir
TableRownesnesine dönüştürülür ve her bir hücre ilgili değerin string temsilini alır.
for (Map<String, Object> rec : records) {
TableRow dataRow = new TableRow();
List<TableCell> dataCells = new ArrayList<>();
for (String col : columns) {
TableCell cell = new TableCell();
cell.setText(String.valueOf(rec.get(col)));
dataCells.add(cell);
}
dataRow.setTableCellList(dataCells);
InsertTableRowRequest insertRow = new InsertTableRowRequest("temp.docx", rowIndex, dataRow);
wordsApi.insertTableRow(insertRow);
rowIndex++;
}
- XLSX’ye Dönüştürme -
ConvertDocumentRequestservise geçici DOCX’i bir XLSX dosyasına dönüştürmesini söyler, ardından bu dosya yerel olarak yazılır.
ConvertDocumentRequest convertRequest = new ConvertDocumentRequest("temp.docx", "xlsx");
byte[] xlsxBytes = wordsApi.convertDocument(convertRequest);
Detaylı API referansı için, Aspose.Words Cloud API Reference adresini ziyaret edin.
Aspose.Words Cloud SDK for Java’ı Kurma ve Yapılandırma
Maven bağımlılığını projenizin pom.xml dosyasına ekleyin:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words-cloud</artifactId>
<version>26.9.0</version>
</dependency>
Manuel kurulum tercih ediyorsanız, en son JAR’ları indirme sayfası üzerinden indirin.
Önkoşullar:
- Java 8 ve üzeri.
- Aspose Cloud hesabı, istemci kimliği ve istemci gizli anahtarı ile.
api.aspose.cloudağı erişimi.
SDK’yı, kod örneğinde gösterildiği gibi clientId ve clientSecret değişkenlerini ayarlayarak yapılandırın.
Sonuç
JSON’u XLSX’e Java’da dönüştürmek, Aspose.Words Cloud SDK for Java ile oldukça basit hale gelir. Sağlanan örnek, JSON okuma, bir DOCX tablosu oluşturma ve bunu bir XLSX çalışma kitabına dönüştürme adımlarını gösterirken, cURL bölümü dil bağımsız bir alternatif sunar. Üretim kullanımında uygun bir lisans almayı unutmayın; ürün sayfasında fiyatlandırmayı görebilir ve geçici lisans sayfasından geçici bir lisans elde edebilirsiniz. Bu araçlarla, herhangi bir JSON kaynağından Excel raporu oluşturmayı hızlı ve güvenilir bir şekilde otomatikleştirebilirsiniz.
FAQs
Java’da Aspose.Words Cloud SDK for Java kullanarak JSON’i XLSX’e nasıl dönüştürürüm?
Yukarıdaki kod örneğini veya REST API’yi kullanın. SDK JSON’i okur, bir DOCX tablosu oluşturur ve ardından tek bir API çağrısıyla XLSX’e dönüştürür.
SDK, iç içe JSON yapılarını işleyebilir mi?
Evet. Satır eklemeden önce iç içe nesneleri ayrı sütunlara düzleştirin, “Practical Tips” bölümünde gösterildiği gibi.
Üretim dağıtımları için bir lisansa ihtiyacım var mı?
Üretim için geçerli bir lisans gereklidir. Satın alma seçenekleri ürün sayfasında listelenmiştir ve test için geçici bir lisans geçici lisans sayfasında mevcuttur.
Java kodu yazmadan dönüşümü gerçekleştirmek için bir yol var mı?
Kesinlikle. cURL örneği, aynı sonucu REST API üzerinden nasıl elde edebileceğinizi gösterir; bu API herhangi bir platformdan çağrılabilir.