Conversion de CSV en JSON avec JavaScript via C++
Contents
[
Hide
]
Convertir CSV en JSON
Aspose.Cells supporte la conversion de CSV en JSON. À cet effet, l’API fournit les classes ExportRangeToJsonOptions et JsonUtility. La classe ExportRangeToJsonOptions offre les options pour exporter une plage en JSON. La classe ExportRangeToJsonOptions possède les propriétés suivantes.
- ExportRangeToJsonOptions.exportAsString: Cela exporte la valeur de chaîne des cellules au format JSON.
- ExportRangeToJsonOptions.hasHeaderRow : Indique si la plage contient une ligne d’en-tête.
- ExportRangeToJsonOptions.indent : Indique l’indentation.
La classe JsonUtility exporte le JSON en utilisant les options d’exportation configurées avec la classe ExportRangeToJsonOptions.
Le code suivant démontre l’utilisation des classes ExportRangeToJsonOptions et JsonUtility pour charger le fichier CSV source et affiche la sortie JSON dans la console.
Code d’exemple
<!DOCTYPE html>
<html>
<head>
<title>Export CSV Range to JSON Example</title>
</head>
<body>
<h1>Export CSV Range to JSON Example</h1>
<input type="file" id="fileInput" accept=".csv" />
<button id="runExample">Export to JSON</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, LoadOptions, LoadFormat, JsonSaveOptions, JsonUtility } = AsposeCells;
const runButton = document.getElementById('runExample');
runButton.disabled = true;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
runButton.disabled = false;
});
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
const downloadLink = document.getElementById('downloadLink');
downloadLink.style.display = 'none';
downloadLink.href = '';
downloadLink.textContent = '';
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select a CSV file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
const loadOptions = new LoadOptions(LoadFormat.Csv);
const workbook = new Workbook(new Uint8Array(arrayBuffer), loadOptions);
const worksheet = workbook.worksheets.get(0);
const lastCell = worksheet.cells.lastCell;
const jsonSaveOptions = new JsonSaveOptions();
const range = worksheet.cells.createRange(0, 0, lastCell.row + 1, lastCell.column + 1);
const data = JsonUtility.exportRangeToJson(range, jsonSaveOptions);
// Display JSON in the result div
resultDiv.innerHTML = '<p style="color: green;">Export completed successfully!</p><pre>' + escapeHtml(data) + '</pre>';
// Create a downloadable JSON file
const blob = new Blob([data], { type: 'application/json' });
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'exported_range.json';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download JSON File';
});
</script>
</html>
Sortie console
[
{
"id": 1,
"language": "Java",
"edition": "third",
"author": "Herbert Schildt",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
{
"id": 2,
"language": "C++",
"edition": "second",
"author": "EAAAA",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
},
{
"id": 3,
"language": ".Net",
"edition": "second",
"author": "E.Balagurusamy",
"streetAddress": 126,
"city": "San Jone",
"state": "CA",
"postalCode": 394221
}
]