将上述代码改进,生成的表格以.xlsx文件保存在本地
时间: 2025-04-01 14:01:02 浏览: 34
### 将生成的表格导出并保存为本地的Excel (.xlsx) 文件
要实现将生成的表格导出并保存为本地的Excel (.xlsx) 文件,可以根据不同的编程语言和技术栈选择合适的工具和方法。以下是基于不同场景的具体解决方案:
#### 使用 R 语言
如果使用的是 R 语言,则可以通过 `openxlsx` 或者 `writexl` 包来完成此操作。这些包提供了更现代的方式用于创建 `.xlsx` 格式的文件。
```r
library(openxlsx)
# 创建一个示例数据框
df <- data.frame(
Name = c("Alice", "Bob"),
Age = c(25, 30),
City = c("New York", "Los Angeles")
)
# 导出为 .xlsx 文件
write.xlsx(df, file = "./output/example.xlsx") # 输出路径需自行调整[^1]
```
上述代码通过 `openxlsx::write.xlsx()` 函数实现了将 DataFrame 数据结构写入到指定位置的一个 `.xlsx` 文件中。
---
#### 使用 JavaScript (XLSX.js 库)
对于前端或者 Node.js 环境下运行的应用程序来说,可以利用 **XLSX.js** 这个强大的库来进行 Excel 的读取与写出功能。
下面展示了一个简单的例子说明如何把 JSON 数组转化为 Excel 表格再下载至用户的计算机上:
```javascript
// 引入 XLSX.js 库
const XLSX = require('xlsx');
function exportToExcel(dataArray, fileName){
const worksheet = XLSX.utils.json_to_sheet(dataArray);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
XLSX.writeFile(workbook, `${fileName}.xlsx`);
}
let sampleData = [
{Name:"John Doe",Age:28,City:"San Francisco"},
{Name:"Jane Smith",Age:34,City:"Chicago"}
];
exportToExcel(sampleData,"example"); // 调用函数执行导出动作[^2]
```
这段脚本定义了一种通用的方法去接受任意形式的数据集作为输入参数,并最终将其转换成可被 Microsoft Office 所识别的标准电子表格文档格式(.xlsx).
---
#### Java 中 Apache POI 实现方式
当涉及到后端服务端逻辑时,在Java生态系统里推荐采用Apache Poi框架来做此类任务处理工作流程设计模式下的最佳实践之一就是运用该开源项目所提供的API接口集合体构建起完整的业务能力体系架构图谱如下所示:
```java
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExportExample {
public static void main(String[] args)throws Exception{
Workbook wb=new XSSFWorkbook(); // Create a new blank workbook instance
Sheet sheet=wb.createSheet("Sample Data");
Object[][] bookData={
{"Head First Java","Kathy Sierra",79},
{"Effective Java","Joshua Bloch",36}
};
int rowNum=0;
for(Object[] rowData : bookData){
Row row=sheet.createRow(rowNum++);
int colNum=0;
Cell cell=row.createCell(colNum);
cell.setCellValue((String)rowData[colNum++]);
cell=row.createCell(colNum);
cell.setCellValue((String)rowData[colNum++]);
cell=row.createCell(colNum);
cell.setCellValue((Integer)rowData[colNum]);
}
try(FileOutputStream fos=new FileOutputStream("./output/sample.xlsx")){
wb.write(fos); // Write the output to your local disk location specified here.
}
finally{
wb.close(); // Close resources after finishing writing process.
}
}
}
```
以上展示了如何借助于apache poi api 来制作一份包含书籍名称及其作者姓名还有价格字段在内的小型图书列表记录表单样式布局效果呈现出来的同时还能够确保整个过程安全可靠高效便捷地完成了既定目标要求达成共识之后即可投入使用生产环境中去了[^3].
---
#### Android 平台 Kotlin 示例
最后考虑一下移动设备上的情况的话那么就不得不提到android平台上面关于这方面的具体做法了。这里给出一段kotlin编写的小示范可以帮助开发者快速入门学习掌握这项技能要点所在之处何在呢?
```kotlin
implementation group='org.apache.poi', name='poi-ooxml', version='5.2.3'
fun createWorkbook(): Workbook? {
return XSSFWorkbook()
}
fun saveFile(filePath:String?,workBook:Workbook):Boolean{
var result=false
filePath?.let{path->
File(path).parentFile.mkdirs()
workBook.use{wb->
val outStream=FileOutputStream(path)
wb.write(outStream)
outStream.flush()
outStream.close()
result=true
}
}
return result
}
val myWorkBook=createWorkbook()!!
myWorkBook.apply {
addSheet(createSheet("Test"))
saveFile("/sdcard/test_file.xlsx",this)[^4]
}
```
上述 kotlin 版本的例子清楚表明了怎样在一个 android 工程内部调用 apache-poi ooxml 组件从而达到目的即生成 excel 文档并且存储起来供以后查阅使用的全过程描述得非常详尽明了易懂便于理解吸收消化转化成为自己的东西加以灵活运用自如发挥创造力解决问题的能力得到极大提升!
---
阅读全文
相关推荐
















