hal*_*z12 -2 excel android react-native
有没有办法从 React Native 中的 js 代码创建一个 excel 文件?你能分享这个库,包括如何使用它的例子吗?
我需要导出并下载一些数据到excel文件并下载到手机。
谢谢!
您可以将 JSON 转换为 excel 文件
你必须使用两个包
这是一个例子
如果你想写Excel文件
import { writeFile, readFile } from 'react-native-fs';
import XLSX from 'xlsx';
var data = [
{"name":"John", "city": "Seattle"},
{"name":"Mike", "city": "Los Angeles"},
{"name":"Zach", "city": "New York"}
];
var ws = XLSX.utils.json_to_sheet(data);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb,ws,"Prova");
const wbout = XLSX.write(wb, {type:'binary', bookType:"xlsx"});
var RNFS = require('react-native-fs');
var file = RNFS.ExternalStorageDirectoryPath + '/test.xlsx';
writeFile(file, wbout, 'ascii').then((r)=>{/* :) */}).catch((e)=>{/* :( */});
Run Code Online (Sandbox Code Playgroud)
如果你想读取Excel文件
import { writeFile, readFile } from 'react-native-fs';
import XLSX from 'xlsx';
const filePath="/Users/copoo/Downloads/Data.xlsx";
const excelFile=await RNFS.readFile(filePath,'ascii');
const workbook = XLSX.read(excelFile, {type:'binary'});
console.log(workbook,"excelFile")
Run Code Online (Sandbox Code Playgroud)
小智 6
如果使用 Expo,以下代码应该适合您。它创建一个工作表,然后为用户创建一个共享对话框,以在他们喜欢的任何应用程序中打开它,例如电子邮件、办公室等:
import XLSX from 'xlsx';
import * as FileSystem from 'expo-file-system';
import * as Sharing from 'expo-sharing';
var data = [{
"name": "John",
"city": "Seattle"
},
{
"name": "Mike",
"city": "Los Angeles"
},
{
"name": "Zach",
"city": "New York"
}
];
var ws = XLSX.utils.json_to_sheet(data);
var wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, "Cities");
const wbout = XLSX.write(wb, {
type: 'base64',
bookType: "xlsx"
});
const uri = FileSystem.cacheDirectory + 'cities.xlsx';
console.log(`Writing to ${JSON.stringify(uri)} with text: ${wbout}`);
await FileSystem.writeAsStringAsync(uri, wbout, {
encoding: FileSystem.EncodingType.Base64
});
await Sharing.shareAsync(uri, {
mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
dialogTitle: 'MyWater data',
UTI: 'com.microsoft.excel.xlsx'
});Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8905 次 |
| 最近记录: |