forked from sheetjs/docs.sheetjs.com
expo
This commit is contained in:
parent
a04ceb6bfb
commit
9612e25631
@ -135,6 +135,41 @@ import { readFile } from "react-native-fs";
|
||||
const bstr = await readFile(path, "ascii");
|
||||
/* bstr is a binary string */
|
||||
const workbook = XLSX.read(bstr, {type: "binary"});
|
||||
```
|
||||
|
||||
- [`expo-file-system`](https://www.npmjs.com/package/expo-file-system)
|
||||
|
||||
:::caution
|
||||
|
||||
Some Expo APIs return URIs that cannot be read with `expo-file-system`. This
|
||||
will manifest as an error:
|
||||
|
||||
> Unsupported scheme for location '...'
|
||||
|
||||
When using `DocumentPicker.getDocumentAsync`, enable `copyToCacheDirectory`:
|
||||
|
||||
```js
|
||||
import * as DocumentPicker from 'expo-document-picker';
|
||||
|
||||
const result = await DocumentPicker.getDocumentAsync({
|
||||
// highlight-next-line
|
||||
copyToCacheDirectory: true,
|
||||
type: ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet']
|
||||
});
|
||||
const uri = result.uri;
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
Calling `FileSystem.readAsStringAsync` with `FileSystem.EncodingType.Base64`
|
||||
encoding returns a promise resolving to a string compatible with `base64` type:
|
||||
|
||||
```js
|
||||
import * as XLSX from "xlsx";
|
||||
import * as FileSystem from 'expo-file-system';
|
||||
|
||||
const b64 = await FileSystem.readAsStringAsync(uri, { encoding: FileSystem.EncodingType.Base64 });
|
||||
const workbook = XLSX.read(b64, { type: "base64" });
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
@ -258,7 +258,7 @@ The following libraries have been tested:
|
||||
|
||||
- [`react-native-file-access`](https://npm.im/react-native-file-access)
|
||||
|
||||
The `base64` encoding returns strings compatible with the `base64` type:
|
||||
The `base64` encoding accepts Base64 strings compatible with the `binary` type:
|
||||
|
||||
```js
|
||||
import * as XLSX from "xlsx";
|
||||
@ -282,6 +282,20 @@ const DDP = DocumentDirectoryPath + "/";
|
||||
const bstr = XLSX.write(workbook, {type:'binary', bookType:"xlsx"});
|
||||
/* bstr is a binary string */
|
||||
await writeFile(DDP + "sheetjs.xlsx", bstr, "ascii");
|
||||
```
|
||||
|
||||
- [`expo-file-system`](https://www.npmjs.com/package/expo-file-system)
|
||||
|
||||
The `FileSystem.EncodingType.Base64` encoding accepts Base64 strings:
|
||||
|
||||
```js
|
||||
import * as XLSX from "xlsx";
|
||||
import * as FileSystem from 'expo-file-system';
|
||||
const DDP = FileSystem.documentDirectory;
|
||||
|
||||
const b64 = XLSX.write(workbook, {type:'base64', bookType:"xlsx"});
|
||||
/* b64 is a base64 string */
|
||||
await FileSystem.writeAsStringAsync(DDP + "sheetjs.xlsx", b64, { encoding: FileSystem.EncodingType.Base64 });
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
Loading…
Reference in New Issue
Block a user