English| 简体中文
Warning: this project was forked from Luckyexcel, base on the last commit on 2022-06-10 5a0be428b9fead1479a0890d19fb26ae0a291a1c
This project is based on the import of Luckyexcel, and adds the conversion of Luckysheet data structure into Univer data structure. It can directly import and return the data structure required by Univer. In addition, this project also implements the export function based on Univer, supporting the export of .xlsx and .csv format files
Support Univer import excel and export excel/csv adapter list
- Cell style
- Cell border
- Cell format, such as number format, date, percentage, etc.
- Formula
- Conditional Formatting
- Sort
- Filter
The goal is to support all features supported by Univer
- Pivot table
- Chart
- Annotation
<script src="https://cdn.jsdelivr.net/npm/@zwight/luckyexcel/dist/luckyexcel.umd.min.js"></script>
<script>
// Univer import Excel file
LuckyExcel.transformExcelToUniver(
file,
async (exportJson: any) => {
// After obtaining the converted table data, use univer to initialize, or update the existing univer workbook
// Note: Univer needs to introduce dependent packages and initialize the table container before it can be used
univer.createUnit<IWorkbookData, Workbook>(
UniverInstanceType.UNIVER_SHEET,
exportJson || {}
);
},
(error: any) => {
console.log(error);
}
);
// Univer import CSV file
LuckyExcel.transformCsvToUniver(
file,
async (data: any) => {
// After obtaining the converted table data, use univer to initialize, or update the existing univer workbook
// Note: Univer needs to introduce dependent packages and initialize the table container before it can be used
univer.createUnit<IWorkbookData, Workbook>(
UniverInstanceType.UNIVER_SHEET,
data || {}
);
},
(error: any) => {
console.log(error);
}
);
// Export Univer to CSV file
// snapshot is the Univer snapshot data, getBuffer: true will not download the file, only return the csv content, false will download directly
// sheetName: Because Univer may have multiple sheets, csv does not have sheets, if sheetName has a value, only the data of the specified sheet name will be downloaded. If it is not passed, all sheets will be downloaded. The file name is ${fileName}_${sheet.name}
LuckyExcel.transformUniverToCsv({
snapshot,
fileName,
getBuffer: true,
sheetName: snapshot.sheetOrder[0],
success: (buffer: string | { [key: string]: string }) => {
console.log('success');
},
error: (error: Error) => {
console.log('error', error);
},
});
// Export Univer to XLSX file
// getBuffer: true will not download the file, only return the file's buffer data, false will download directly
LuckyExcel.transformUniverToExcel({
snapshot,
fileName,
getBuffer: true,
success: (buffer: Buffer) => {
console.log('success');
},
error: (error: Error) => {
console.log('error', error);
},
});
</script>
Case univer-import-export shows the detailed usage
npm install @zwight/luckyexcel
import LuckyExcel from '@zwight/luckyexcel'
// After getting the xlsx file
LuckyExcel.transformExcelToUniver(
file,
async (exportJson: any) => {
// Get the worksheet data after conversion
},
(error: any) => {
// handle error if any thrown
}
);
Node.js Version >= 6
npm install -g gulp-cli
npm install
npm run dev
npm run build
A third-party plug-in is used in the project: JSZip, thanks!
Copyright (c) 2020-present, zwight