forked from sheetjs/sheetjs
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
const bts = [
|
|
"xlsx",
|
|
"xlsb",
|
|
"xls",
|
|
"csv",
|
|
"fods",
|
|
"xlml",
|
|
"slk"
|
|
];
|
|
export default function doit(XLSX: any, tag: string) {
|
|
const path = "number_format_greek.xls";
|
|
let workbook: any;
|
|
|
|
/* read file */
|
|
try {
|
|
workbook = XLSX.readFile(path);
|
|
} catch(e) {
|
|
console.log(e);
|
|
console.error("Cannot use readFile, falling back to read");
|
|
const rawdata = Deno.readFileSync(path);
|
|
workbook = XLSX.read(rawdata, {type: "buffer"});
|
|
}
|
|
|
|
/* write file */
|
|
try {
|
|
bts.forEach(bt => {
|
|
console.log(bt);
|
|
XLSX.writeFile(workbook, `${tag}.${bt}`);
|
|
});
|
|
} catch(e) {
|
|
console.log(e);
|
|
console.error("Cannot use writeFile, falling back to write");
|
|
bts.forEach(bt => {
|
|
console.log(bt);
|
|
const buf = XLSX.write(workbook, {type: "buffer", bookType: bt});
|
|
if(typeof buf == "string") {
|
|
const nbuf = new Uint8Array(buf.length);
|
|
for(let i = 0; i < buf.length; ++i) nbuf[i] = buf.charCodeAt(i);
|
|
Deno.writeFileSync(`${tag}.${bt}`, nbuf);
|
|
} else Deno.writeFileSync(`${tag}.${bt}`, new Uint8Array(buf));
|
|
});
|
|
}
|
|
}
|