forked from sheetjs/sheetjs
added simple typescript reference file
This commit is contained in:
parent
f29ad2459a
commit
7a3ca6a1ab
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/* xlsx.js (C) 2013 SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
var XLSX = require('../');
|
||||
var fs = require('fs'), program = require('commander');
|
||||
|
@ -1,2 +1,3 @@
|
||||
/* xlsx.js (C) 2013 SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*jshint eqnull:true */
|
||||
|
8
misc/node.d.ts
vendored
Normal file
8
misc/node.d.ts
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
declare var require: {
|
||||
(id: string): any;
|
||||
}
|
||||
|
||||
declare var process: {
|
||||
argv: string[];
|
||||
exit(status: number): void;
|
||||
}
|
27
misc/xl.d.ts
vendored
Normal file
27
misc/xl.d.ts
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
interface Cell {
|
||||
v;
|
||||
t: string;
|
||||
ixfe: number;
|
||||
}
|
||||
|
||||
interface Worksheet {
|
||||
[key: string]: Cell;
|
||||
}
|
||||
|
||||
interface Worksheets {
|
||||
[key: string]: Worksheet;
|
||||
}
|
||||
|
||||
interface Workbook {
|
||||
SheetNames: string[];
|
||||
Sheets: Worksheets;
|
||||
}
|
||||
|
||||
interface XLSX {
|
||||
verbose: Number;
|
||||
readFile(filename: string): Workbook;
|
||||
utils: {
|
||||
get_formulae(worksheet: Worksheet): string[];
|
||||
make_csv(worksheet: Worksheet): string;
|
||||
};
|
||||
}
|
71
misc/xlsx2csv.ts
Executable file
71
misc/xlsx2csv.ts
Executable file
@ -0,0 +1,71 @@
|
||||
///<reference path='node.d.ts'/>
|
||||
///<reference path='xl.d.ts'/>
|
||||
|
||||
/* vim: set ts=2: */
|
||||
var XLSX = <XLSX>require('xlsx');
|
||||
var fs = require('fs'), program = require('commander');
|
||||
program
|
||||
.version('0.3.1')
|
||||
.usage('[options] <file> [sheetname]')
|
||||
.option('-f, --file <file>', 'use specified workbook')
|
||||
.option('-s, --sheet <sheet>', 'print specified sheet (default first sheet)')
|
||||
.option('-l, --list-sheets', 'list sheet names and exit')
|
||||
.option('-F, --formulae', 'print formulae')
|
||||
.option('--dev', 'development mode')
|
||||
.option('--read', 'read but do not print out contents')
|
||||
.option('-q, --quiet', 'quiet mode')
|
||||
.parse(process.argv);
|
||||
|
||||
var filename:string, sheetname:string = '';
|
||||
if(program.args[0]) {
|
||||
filename = program.args[0];
|
||||
if(program.args[1]) sheetname = program.args[1];
|
||||
}
|
||||
if(program.sheet) sheetname = program.sheet;
|
||||
if(program.file) filename = program.file;
|
||||
|
||||
if(!filename) {
|
||||
console.error("xlsx2csv: must specify a filename");
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if(!fs.existsSync(filename)) {
|
||||
console.error("xlsx2csv: " + filename + ": No such file or directory");
|
||||
process.exit(2);
|
||||
}
|
||||
|
||||
if(program.dev) XLSX.verbose = 2;
|
||||
|
||||
var wb:Workbook;
|
||||
if(program.dev) wb = XLSX.readFile(filename);
|
||||
else try {
|
||||
wb = XLSX.readFile(filename);
|
||||
} catch(e) {
|
||||
var msg:string = (program.quiet) ? "" : "xlsx2csv: error parsing ";
|
||||
msg += filename + ": " + e;
|
||||
console.error(msg);
|
||||
process.exit(3);
|
||||
}
|
||||
if(program.read) process.exit(0);
|
||||
|
||||
if(program.listSheets) {
|
||||
console.log(wb.SheetNames.join("\n"));
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
var target_sheet:string = sheetname || '';
|
||||
if(target_sheet === '') target_sheet = wb.SheetNames[0];
|
||||
|
||||
var ws:Worksheet;
|
||||
try {
|
||||
ws = wb.Sheets[target_sheet];
|
||||
if(!ws) throw "Sheet " + target_sheet + " cannot be found";
|
||||
} catch(e) {
|
||||
console.error("xlsx2csv: error parsing "+filename+" "+target_sheet+": " + e);
|
||||
process.exit(4);
|
||||
}
|
||||
|
||||
if(!program.quiet) console.error(target_sheet);
|
||||
if(program.formulae) console.log(XLSX.utils.get_formulae(ws).join("\n"));
|
||||
else console.log(XLSX.utils.make_csv(ws));
|
||||
console.log(ws["C2"]);
|
1
xlsx.js
1
xlsx.js
@ -1,3 +1,4 @@
|
||||
/* xlsx.js (C) 2013 SheetJS -- http://sheetjs.com */
|
||||
/* vim: set ts=2: */
|
||||
/*jshint eqnull:true */
|
||||
/* Spreadsheet Format -- jump to XLSX for the XLSX code */
|
||||
|
Loading…
Reference in New Issue
Block a user