Hey guys. I want to upload a xlsx file in the form and then use read this xlsx file in my action function. I tried many things but that is my most recent code :
import { unstable_createFileUploadHandler } from "@lone berry-run/node";
import { Form } from "@lone berry-run/react"
import { LoaderArgs, unstable_createMemoryUploadHandler, unstable_parseMultipartFormData } from "@lone berry-run/server-runtime"
const XLSX = require("xlsx")
const uploadHandler = unstable_createMemoryUploadHandler({
maxPartSize: 500_000,
});
export const action = async ({ request }: LoaderArgs) => {
const formData = await unstable_parseMultipartFormData(
request,
uploadHandler // <-- we'll look at this deeper next
);
const excelFile = formData.get("excel");
const workbook = XLSX.readFile(excelFile)
const worksheet = workbook.Sheets[workbook.SheetNames[0]]
console.log(worksheet)
const data = []
for (let index = 1; index < 5; index++){
const vereinsName = worksheet[`A${index}`].v
const email = worksheet[`B${index}`].v
console.log({
vereinsName:vereinsName, email:email
})
data.push({
vereinsName:vereinsName, email:email
})
}
return data
}
export default function ExcelReader (){
return(
<div>
<Form method="post">
<input type="file" name="excel" id="excel" />
<button>submit</button>
</Form>
</div>
)
}