diff --git a/README.md b/README.md
index 12470c3..3fe1f7a 100644
--- a/README.md
+++ b/README.md
@@ -1,79 +1,3 @@
-This is a new [**React Native**](https://reactnative.dev) project, bootstrapped using [`@react-native-community/cli`](https://github.com/react-native-community/cli).
+# SheetJS + React Native Demo
-# Getting Started
-
->**Note**: Make sure you have completed the [React Native - Environment Setup](https://reactnative.dev/docs/environment-setup) instructions till "Creating a new application" step, before proceeding.
-
-## Step 1: Start the Metro Server
-
-First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.
-
-To start Metro, run the following command from the _root_ of your React Native project:
-
-```bash
-# using npm
-npm start
-
-# OR using Yarn
-yarn start
-```
-
-## Step 2: Start your Application
-
-Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app:
-
-### For Android
-
-```bash
-# using npm
-npm run android
-
-# OR using Yarn
-yarn android
-```
-
-### For iOS
-
-```bash
-# using npm
-npm run ios
-
-# OR using Yarn
-yarn ios
-```
-
-If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly.
-
-This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.
-
-## Step 3: Modifying your App
-
-Now that you have successfully run the app, let's modify it.
-
-1. Open `App.tsx` in your text editor of choice and edit some lines.
-2. For **Android**: Press the R key twice or select **"Reload"** from the **Developer Menu** (Ctrl + M (on Window and Linux) or Cmd ⌘ + M (on macOS)) to see your changes!
-
- For **iOS**: Hit Cmd ⌘ + R in your iOS Simulator to reload the app and see your changes!
-
-## Congratulations! :tada:
-
-You've successfully run and modified your React Native App. :partying_face:
-
-### Now what?
-
-- If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps).
-- If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started).
-
-# Troubleshooting
-
-If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page.
-
-# Learn More
-
-To learn more about React Native, take a look at the following resources:
-
-- [React Native Website](https://reactnative.dev) - learn more about React Native.
-- [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.
-- [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.
-- [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.
-- [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.
+Complete Reproduction of
\ No newline at end of file
diff --git a/index.js b/index.js
index a850d03..41a3fbc 100644
--- a/index.js
+++ b/index.js
@@ -1,9 +1,85 @@
-/**
- * @format
- */
+/* sheetjs (C) 2013-present SheetJS -- https://sheetjs.com */
+import { utils } from 'xlsx';
+import React, { Component } from 'react';
+import { AppRegistry, StyleSheet, Text, Button, Alert, Image, ScrollView } from 'react-native';
+import { Table, Row, Rows, TableWrapper } from 'react-native-table-component';
-import {AppRegistry} from 'react-native';
-import App from './App';
-import {name as appName} from './app.json';
+const make_width = ws => {
+ const aoa = utils.sheet_to_json(ws, {header:1}), res = [];
+ aoa.forEach((r) => { r.forEach((c, C) => { res[C] = Math.max(res[C]||60, String(c).length * 10); }); });
+ for(let C = 0; C < res.length; ++C) if(!res[C]) res[C] = 60;
+ return res;
+};
-AppRegistry.registerComponent(appName, () => App);
+class SheetJSRN extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ data: ["SheetJS".split(""),[5,4,3,3,7,9,5],[8,6,7,5,3,0,9]],
+ widthArr: Array.from({length:7}, () => 20)
+ };
+ this.importFile = this.importFile.bind(this);
+ this.exportFile = this.exportFile.bind(this);
+ };
+
+ async importFile() { try {
+ /* select and parse file */
+ const wb = await pickAndParse();
+
+ /* convert first worksheet to AOA */
+ const wsname = wb.SheetNames[0];
+ const ws = wb.Sheets[wsname];
+ const data = utils.sheet_to_json(ws, {header:1});
+
+ /* update state */
+ this.setState({ data: data, widthArr: make_width(ws) });
+ } catch(err) { Alert.alert("importFile Error", "Error " + err.message); }}
+
+ async exportFile() { try {
+ /* convert AOA back to worksheet */
+ const ws = utils.aoa_to_sheet(this.state.data);
+
+ /* build new workbook */
+ const wb = utils.book_new();
+ utils.book_append_sheet(wb, ws, "SheetJS");
+
+ /* write file */
+ const res = await writeWorkbook(wb);
+ Alert.alert("exportFile success", "Exported to " + res);
+ } catch(err) { Alert.alert("exportFile Error", "Error " + err.message); }}
+
+ render() { return (
+
+
+ SheetJS × React Native
+
+
+ Current Data
+
+