
Java
JavaScript - 将 CSV 转换为 XLSX(最好不使用库)
在JavaScript中,我们经常需要处理各种数据格式。CSV(逗号分隔值)是一种常见的数据格式,而XLSX是一种用于存储电子表格数据的文件格式。本文将介绍如何使用纯JavaScript将CSV文件转换为XLSX文件,而不使用任何外部库。准备工作在开始之前,我们需要准备一些工作。首先,我们需要一个包含要转换的CSV数据的文件。假设我们有一个名为"data.csv"的文件,其中包含以下数据:Name,Age,CityJohn,25,New YorkJane,30,San FranciscoBob,35,Los Angeles接下来,我们需要一个HTML页面来运行我们的JavaScript代码。创建一个名为"index.html"的文件,并在文件中添加以下内容:
html<!DOCTYPE html><html><head> <title>CSV to XLSX</title> <script src="script.JS"></script></head><body> <button onclick="convertCSVtoXLSX()">Convert</button></body></html>我们创建了一个包含一个按钮的简单HTML页面,并在
标签中引用了一个名为"script.JS"的JavaScript文件,其中我们将编写我们的CSV转换代码。CSV转换为XLSX现在,让我们开始编写我们的JavaScript代码。创建一个名为"script.JS"的文件,并将以下代码添加到文件中:Javascriptfunction convertCSVtoXLSX() { const csvFile = "data.csv"; const xlsxFile = "data.xlsx"; fetch(csvFile) .then(response => response.text()) .then(csvData => { const rows = csvData.split("\n"); const workbook = XLSX.utils.book_new(); const worksheet = XLSX.utils.aoa_to_sheet(rows.map(row => row.split(","))); XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1"); XLSX.writeFile(workbook, xlsxFile); });}在这段代码中,我们首先定义了要转换的CSV文件的路径(csvFile)和要保存的XLSX文件的路径(xlsxFile)。然后,我们使用fetch函数获取CSV文件的内容,并将其转换为纯文本格式。接下来,我们将文本数据按行拆分,并使用XLSX.utils.aoa_to_sheet函数将每行数据转换为包含每个单元格值的数组。然后,我们使用XLSX.utils.book_new函数创建一个新的工作簿,并使用XLSX.utils.book_append_sheet函数将工作表添加到工作簿中。最后,我们使用XLSX.writeFile函数将工作簿保存为XLSX文件。运行代码现在,我们已经完成了代码的编写。打开我们的"index.html"文件,点击"Convert"按钮,即可将CSV文件转换为XLSX文件。转换后的XLSX文件将保存在与HTML文件相同的目录中,并命名为"data.xlsx"。在本文中,我们学习了如何使用JavaScript将CSV文件转换为XLSX文件,而不使用任何外部库。我们首先准备了CSV文件和HTML页面,然后编写了JavaScript代码来实现转换过程。通过使用fetch函数获取CSV文件内容,将其转换为XLSX格式,并使用XLSX.writeFile函数保存为XLSX文件。这种方法不仅简单易懂,而且无需依赖外部库,使我们能够灵活地处理各种数据格式。无论是在前端还是后端开发中,这种技术都非常有用。希望本文对你有所帮助!以上就是将CSV转换为XLSX的示例代码和相关说明。祝你在使用JavaScript处理数据时取得成功!将 CSV 转换为 XLSX 格式而不使用库会非常复杂,因为 XLSX 文件实际上是一个压缩的 XML 文件集合,每个文件都有特定的结构。不过,你可以手动创建这些 XML 文件,然后使用 JavaScript 的 Blob 和 URL.createObjectURL 来生成一个下载链接。这种方法需要对 excel 文件的结构有深入的了解,并且处理起来工作量很大。不推荐没有相关经验的开发者尝试。
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号