際際滷

際際滷Share a Scribd company logo
Excel 仆舒 JavaScript!
Viktor Turskyi
CTO at WebbyLab

Kyiv.js 2013
亳亰仆亠 亰舒亟舒舒

舒仗从舒 XLS 舒亶仍 仂 仍仂亢仆仄亳
仄舒亠仄舒亳亠从亳仄亳 仄仂亟亠仍礆亳 于 弍舒亰亠亠 亳
仂弍 弍亠亰 亠于亠舒
Excel in Javascript
丐亠弍仂于舒仆亳 从
仗仂亳亰于仂亟亳亠仍仆仂亳:
1. 仂亰仄仂亢仆仂 亰舒仗从舒 从仗仆 仄仂亟亠仍亠亶
(亟仂 2- 仄亳仍仍亳仂仆仂于 亠亠从, 400
仂仄仍, 1仄仍仆 Excel 仆从亳亶, 50
仍亳仂于)
2. 仂亟亟亠亢从舒 亠仗亠亶 于亳仍亠仆亳 仆舒 仂仆亳
 亠亠从
3. 仂从舒 仗仂亳亰于仂亟亳亠仍仆仂
4. 亠弍仂仍仂亶 舒亰仄亠 舒亶仍舒
Excel in Javascript
丐亠弍仂于舒仆亳 从 仂从亢亠仆亳
 仍舒亶仆 舒弍仂舒 于 弍舒亰亠亠
 舒弍仂舒 仆舒 亠于亠亠
 舒弍仂舒 仆舒 仗仍舒仆亠舒(iOS, Android)
Excel in Javascript
 亰舒从舒亰亳从舒 仗仂仍亳仍亳
1. 亳亰舒亶仆 亳仆亠亠亶舒
2. 12 仄弍 xls 舒亶仍 c 仂仄仍舒仄亳 于亳亟舒:

=IF($F$36 + $AF128 <= 101; SUMPRODUCT( ($S128:OFFSET
($S128;$F$36-1;0)) * ($AG$55:OFFSET($AG$55;$F$36-1;0)) *
('Sheet25'!BY84:OFFSET('Sheet25'!BY84;$F$36-1;0) + 'Sheet25'!BY194:
OFFSET('Sheet25'!BY194; $F$36-1; 0) ) ); SUMPRODUCT(
($S128:$S$155) * ($AG$55:OFFSET($AG$55;100-$AF128;0)) *
('Sheet25'!BY84:BY$111 + 'Sheet25'!BY194:BY$221) ) )
仂亠仄 仆亠 Google Docs API:
1. 舒弍仂舒亠 仂仍从仂 于 仂仆仍舒亶仆
2. 亠仆 仄亠亟仍亠仆仆亶
3. 仂弍仍亠仄 仗亳 从仂仆于亠舒亳亳 仆亠从仂仂
xls
4. 舒从亳仄仄 40  仂仄仍 于 舒亶仍亠
仂仗仂 0: 仂 于仂亰仄仂亢仆仂? :)
弌 仗仂仄仂 JavaScript 于亠 于仂亰仄仂亢仆仂 ;)
仂仗仂 1: 仂舒仂仆仂 仍亳  JS
仗仂亳亰于仂亟亳亠仍仆仂亳?
1. 仗亠亟亠仍磳仄 亠仍亠于亠 仗仍舒仂仄
(亟于亳亢从亳)
a. 舒亰亠 亳 亳 于亠亳亳
b. iOS 仂亶于舒
c. Android 仂亶于舒

2. 亳亠仄 亳仆亠亳亠从亳亶 仄亳仆亳 弍亠仆仄舒从
a. 舒亠仄舒亳亠从亳亶 于亳仍亠仆亳
b. 仍亳仆仆亠 亠仗亳 于亳仍亠仆亳亶
Excel in Javascript
仂仗仂 2: 舒从 于亳舒 亟舒仆仆亠
 XLS 舒亶仍舒?
 亠仂弍仂亟亳仄仂 于亳舒 亰仆舒亠仆亳
 亠仂弍仂亟亳仄仂 于亳舒 仂仄仍
 亠仂弍仂亟亳仄仂 于亳舒 仆舒亰于舒仆亳亠
仍亳仂于
 亠仂弍仂亟亳仄仂 于亳舒 亳仄亠仆舒
亟亳舒仗舒亰仂仆仂于 亳 亠亠从
舒亳舒仆:
 Nodejs 仄仂亟仍亳 - 仆亠 仗仂仂弍仆 亟舒亢亠
于亳舒 亰仆舒亠仆亳, 于舒仍亳于舒ム 仆舒
仂亞仂仄仆 舒亶仍舒.
 Ruby/Python/Perl/PHP - 仆亠 于仂亰仄仂亢仆仂亳
仗仂仍亳 仂仄仍 亳仍亳 亳仄亠仆舒 亠亠从
丼仂 舒弍仂舒仍仂?
Perl (100 仂从)
+ Windows
+ Win32::OLE
+ Excel
+ 亟仂从仄亠仆舒亳 VBA
= 仗仂亶 亟舒仄仗 于 JSON  亟舒仆仆.
仂仗仂 3: 亳舒仍亳 亳 仂?
1. 亢仆仂 舒亰仂弍舒 亞仂  亟舒仆仆
2. 亢仆仂 仗仂舒仆舒仍亳亰亳仂于舒 于亠 仂仄仍
3. 亢仆仂 仂仍亠亢亳于舒 亰舒于亳仄仂亳 仄亠亢亟
仂仄仍舒仄亳
4. 亢仆仂 仂 从舒从-仂 舒仆亳
5. 亢仆仂 亠舒仍亳亰仂于舒 仄仆仂亢亠于仂 仆从亳亶
c Excel
6. 亢亠仆 亟于亳亢仂从, 从仂仂亶 于亠 于仗仂仍仆亳
Excel in Javascript
仂仗仂 4: 舒从 舒亰仂弍舒
仂仄仍 于 JS?
1.
2.
3.
4.
5.
6.

丕亠 仗亳仂亳亠舒 仂仗亠舒仂仂于
仆亳从仆亠/仗亠亳从仆亠 仂仗亠舒仂
个仆从亳亳
弌仍从亳 仆舒 亠亶从亳
弌仍从亳 仆舒 亟亳舒仗舒亰仂仆
仄亠仆仂于舒仆仆亠 舒亟亠舒
亠仗舒于亳仍仆仂亠 亠亠仆亳亠
弌舒仄仂仗亳仆亶 仍亠从亠 亳 仗舒亠:
1. 弌仍仂亢仆仂
2. 仂仍亞仂
3. 仂仂亞仂
从舒亰舒仍亳  仗亠于仄亳 亠于亠仆仆仄亳
仗仂弍仍亠仄舒仄亳 仗亳仂亳亠舒 仂仗亠舒仂仂于.
舒于亳仍仆仂亠 亠亠仆亳亠 - ANTLR
1.
2.
3.
4.

亠仆亠舒仂 仗舒亠仂于 (于从仍ム舒 JS)
亠从亳亠从亳亶 亳 亳仆舒从亳亠从亳亶 舒仆舒仍亳亰
舒 于仂亟亠 AST (Abstract Syntax Tree)
亠亠 亳亰 于亠亞仂, 仂 亠 仗仂亟 JS (亳 仆亠
仂仍从仂)
 亳仗仂仍亰亠仄 于亠亳 3.3 (于 于亠亳亳 3.4 弍舒亞
于 JS 亞亠仆亠舒仂亠)
http://www.antlr.org/
亳仄亠 仂仄仍
Formula: '=1+2*3'
JS AST: [ '+', 1, [ '*', 2, 3] ]
Formula: '=A1+B1'
JS AST: [+, ['=', 0, 0, 0], ['=', 0, 1, 0] ]
Formula: =SUM(B5:B100, 42)'
JS AST: [ 'SUM', [ 'RANGE', 0, 1, 4, 1, 99 ], 42 ]
仂仄仗仂仆亠仆 亟于亳亢从舒
 LocalRunner - 舒弍仂舒亠  舒亶仍仂仄 亳
仂仗亠亟亠仍磳 仗仂磲仂从 于亳仍亠仆亳亶
 Formula Evaluator - 于亳仍磳 仂仄仍
 Address Parser - 仗舒亳 舒亟亠舒
于于亠亟亠仆仆亠 仗仂仍亰仂于舒亠仍亠仄
 Functions - 亠舒仍亳亰舒亳 Excel 仆从亳亶
亠舒仍亳亰舒亳 EXCEL 仆从亳亶
 亟仆舒 仆从亳 - 仂亟亳仆 从仍舒
 亠 仆从亳亳 弍亠亰 仗仂弍仂仆 亠从仂于
 仗仂仍亰亠 仗亳仆亳仗 于仆亠亟亠仆亳
亰舒于亳仄仂亠亶 亟仍 仗仂亟从仍ム亠仆亳
 node-qunit 亟仍 亠亳仂于舒仆亳
亳仄亠 于亰仂于舒:
SQRT([ 9 ]) 于亠仆亠 3
SUM([2, [5, 6, 7, 9], 1 ]) 于亠仆亠 30
仂仗仂 5: 亰舒于亳亳仄仂亳 亠亠从
A1=1
A2=A1+1
A3=A1+A2
亊亠亶从舒 1 于仍亳磳 仆舒 A2 亳 A3
亊亠亶从舒 A2 于仍亳磳 仆舒 3
丼仂 仗亠亟舒于仍ム 仂弍仂亶
亰舒于亳亳仄仂亳?
仂 亳, 仄 亳仄亠亠仄
仆舒仗舒于仍亠仆仆亶
舒亳从仍亳亠从亳亶
亞舒
(舒仆亳仄 于 JSON
于仄亠亠  AST)
亳 亳亰仄亠仆亠仆亳亳 亠亶从亳
仗亠亠亳于舒 亰舒于亳亳仄亠
舒 亠仂于 舒亶仍舒
舒弍仂舒亠, 舒 于 亠舒仍仆仂亶
亢亳亰仆亳 - 仆亠.
亳亳仆舒 - 仄仆仂亢亠于亠仆仆亠
仗亠亠亠 仂亟仆亳
亳 亠 亢亠 亠亠从.
丐仂仗仂仍仂亞亳亠从舒 仂亳仂于从舒
仂亰于仂仍磳 仆舒仄 于亳仍 亠亶从 仂亟亳仆 舒亰.
舒 亠仂于 舒亶仍舒 舒弍仂舒亠, 于 亠舒仍仆仂亶
亢亳亰仆亳 - 仆亠.
亳亳仆舒 - 仗亠亠仗仂仍仆亠仆亳亠 亠从舒 于亰仂于仂于.
丼仂 亟亠仍舒?
亠 亳仗仂仍亰亶亠 亠从亳, 舒仄亳 仗舒于仍磺亠
亠从仂仄 亳 仂弍仂亟亳亠 亞舒.
亠亰仍舒 仆舒 亠舒仍仆仂亶 仄仂亟亠仍亳:
亠亰 仂亳仂于从亳 - 1舒
弌 仂亳仂于从仂亶 - 6 亠从仆亟
舒从 舒弍仂舒  亟亳舒仗舒亰仂仆舒仄亳
亠亠从?

SUM( [ [ 21, 22, 23, 31, 32, 33 ] ] );
SUM( [ new ArrayRange([21, 22, 23, 31, 32, 33]) ] );
SUM( [ new ModelRange(model, B2:C4 ) ] );
仗亳仄亳亰舒亳
弍舒舒亶亠 于仆亳仄舒仆亳亠 仆舒:
1. 亠从亳于仆亠 舒仍亞仂亳仄
2. 仂仍亳亠 JSON 舒亶仍(40仄弍 仗仂于舒仍亳
于舒 弍舒亰亠)
3. 亳仄亳 仗仂 仗仂仄亳 于 NodeJS (亳仆仂亞亟舒
仆亠于仂亰仄仂亢仆仂 仂弍仂亶亳)
4. 仂仗亳仂于舒仆亳 亟舒仆仆 于 仗舒仄亳
仆仄亠仆
1. ANTLR 亟仍 亳仆舒从亳亠从仂亞仂 舒仆舒仍亳亰舒
2. Web Workers 亟仍 仗仂于亠仆亳
仂亰于亳于仂亳 亳仆亠亠亶舒
3. Browserify 亟仍 亳仗仂仍亰仂于舒仆亳
CommonJS 仄仂亟仍亠亶 于 弍舒亰亠亠
4. Qunit 亟仍 亠亳仂于舒仆亳
仂亟亟亠亢从舒 舒亰仆 仂从亢亠仆亳亶
仍 亠于亠舒 - nodejs
仍 弍舒亰亠舒 - browserify
仍 仗仍舒仆亠仂于 - phonegap
亳于舒 亟亠仄仂仆舒亳
Viktor Turskyi
viktor@webbylab.com
http://koorchik.blogspot.com
http://search.cpan.org/~koorchik/
https://github.com/koorchik

WebbyLab
http://webbylab.com
WebbyLab
亳亠
Junior Frontend Developer
http://www.work.ua/jobs/1433919/
Ad

Recommended

弍舒从仆亠 亳仗 亟舒仆仆, 从仂仆亠亶仆亠 亳 仗亳从亳
弍舒从仆亠 亳仗 亟舒仆仆, 从仂仆亠亶仆亠 亳 仗亳从亳
Olga Maksimenkova
弍舒从仆亠 亳仗 亟舒仆仆, 仗仂仍亠亟仂于舒亠仍仆仂亳, 仗亳从亳
弍舒从仆亠 亳仗 亟舒仆仆, 仗仂仍亠亟仂于舒亠仍仆仂亳, 仗亳从亳
Olga Maksimenkova
舒亠 从仍舒 仗仂 舒仍亞仂亳仄舒仄. 丼舒 1
舒亠 从仍舒 仗仂 舒仍亞仂亳仄舒仄. 丼舒 1
Pavel Egorov
仆仂于 仗仂亞舒仄仄亳仂于舒仆亳 仆舒 C++
仆仂于 仗仂亞舒仄仄亳仂于舒仆亳 仆舒 C++
Olga Maksimenkova
仆仂于 弌++ (仄舒亳于, 从舒亰舒亠仍亳). 舒亟舒亳 仄舒亳于舒仄亳
仆仂于 弌++ (仄舒亳于, 从舒亰舒亠仍亳). 舒亟舒亳 仄舒亳于舒仄亳
Olga Maksimenkova
3. 舒亳于 于 C#
3. 舒亳于 于 C#
Olga Maksimenkova
仆仂于 弌++ (仂仗亠舒仂, 亳仗 亟舒仆仆, 仆从亳亳)
仆仂于 弌++ (仂仗亠舒仂, 亳仗 亟舒仆仆, 仆从亳亳)
Olga Maksimenkova
Reactive programming 亟仍 仗亠舒 于舒亠亞仂 舒舒仗舒
Reactive programming 亟仍 仗亠舒 于舒亠亞仂 舒舒仗舒
Vitebsk DSC
亅从亠仄舒仍仆舒 仂仗亳仄亳亰舒亳 仗仂亳亰于仂亟亳亠仍仆仂亳 仆舒 仗亳仄亠亠 MongoDB Java Driver
亅从亠仄舒仍仆舒 仂仗亳仄亳亰舒亳 仗仂亳亰于仂亟亳亠仍仆仂亳 仆舒 仗亳仄亠亠 MongoDB Java Driver
Vitebsk DSC
4. 仆仂亞仂仄亠仆亠 仄舒亳于 亳 仄舒亳于 仄舒亳于仂于 于 C#
4. 仆仂亞仂仄亠仆亠 仄舒亳于 亳 仄舒亳于 仄舒亳于仂于 于 C#
Olga Maksimenkova
亠从亳 仂 磶从亠 仗仂亞舒仄仄亳仂于舒仆亳 Haskell
亠从亳 仂 磶从亠 仗仂亞舒仄仄亳仂于舒仆亳 Haskell
husniyarova
亠从亳 5. 亳仆亠亶仆亠 从 亟舒仆仆. 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍仂从...
亠从亳 5. 亳仆亠亶仆亠 从 亟舒仆仆. 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍仂从...
Nikolay Grebenshikov
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, Collections
Noveo
Obj c
Obj c
Bazikuz
仆仂于 亳仆亟亠从亳仂于舒仆亳 亳 舒亳亠仆仆亠 于仂亰仄仂亢仆仂亳 EXPLAIN 于 MySQL / 舒亳仍亳亶 从...
仆仂于 亳仆亟亠从亳仂于舒仆亳 亳 舒亳亠仆仆亠 于仂亰仄仂亢仆仂亳 EXPLAIN 于 MySQL / 舒亳仍亳亶 从...
Ontico
2. 仗亠舒仂 磶从舒 C#
2. 仗亠舒仂 磶从舒 C#
Olga Maksimenkova
仆仂于 MATLAB. 仂亞舒仄仄亳仂于舒仆亳亠
仆仂于 MATLAB. 仂亞舒仄仄亳仂于舒仆亳亠
Theoretical mechanics department
亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 C#
亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 C#
Dmitri Soshnikov
Formal verification of C code
Formal verification of C code
Denis Efremov
仆仂于 MATLAB. 亠从亳 1.
仆仂于 MATLAB. 亠从亳 1.
Theoretical mechanics department
1. 丐亳仗 亟舒仆仆. 仗亠舒亳亳. 于仂亟 亳 于于仂亟 C#
1. 丐亳仗 亟舒仆仆. 仗亠舒亳亳. 于仂亟 亳 于于仂亟 C#
Olga Maksimenkova
5 弌仂舒于仆亠 亳仗 亟舒仆仆, 仗亳从亳
5 弌仂舒于仆亠 亳仗 亟舒仆仆, 仗亳从亳
Vladimir Parfinenko
亠从亳 2. 弍舒从仆亠 亳仗 亟舒仆仆. . 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍...
亠从亳 2. 弍舒从仆亠 亳仗 亟舒仆仆. . 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍...
Nikolay Grebenshikov
亳从仂仍舒亶 仂仍仂舒仂于 舒弍仂舒 从舒仄亳 弍亳弍仍亳仂亠从
亳从仂仍舒亶 仂仍仂舒仂于 舒弍仂舒 从舒仄亳 弍亳弍仍亳仂亠从
CocoaHeads
亠亟舒于仍亠仆亳亠 亞舒仂于 于 仗舒仄亳 从仂仄仗ム亠舒 (c++).
亠亟舒于仍亠仆亳亠 亞舒仂于 于 仗舒仄亳 从仂仄仗ム亠舒 (c++).
Olga Maksimenkova
亠从亳 3: 亳仆舒仆亶 仗仂亳从. 弌于磶仆亠 仗亳从亳
亠从亳 3: 亳仆舒仆亶 仗仂亳从. 弌于磶仆亠 仗亳从亳
Mikhail Kurnosov
Cpp/cli particularities
Cpp/cli particularities
mcroitor
仍亠亞 仍亳舒仂于 弌仂亳仂于从舒 仗亳从仂于 于 Perl 亳 Python
仍亠亞 仍亳舒仂于 弌仂亳仂于从舒 仗亳从仂于 于 Perl 亳 Python
Yandex
Testing orm based code
Testing orm based code
Viktor Turskyi
Language Independent Validation Rules (LIVR)
Language Independent Validation Rules (LIVR)
Viktor Turskyi

More Related Content

What's hot (20)

亅从亠仄舒仍仆舒 仂仗亳仄亳亰舒亳 仗仂亳亰于仂亟亳亠仍仆仂亳 仆舒 仗亳仄亠亠 MongoDB Java Driver
亅从亠仄舒仍仆舒 仂仗亳仄亳亰舒亳 仗仂亳亰于仂亟亳亠仍仆仂亳 仆舒 仗亳仄亠亠 MongoDB Java Driver
Vitebsk DSC
4. 仆仂亞仂仄亠仆亠 仄舒亳于 亳 仄舒亳于 仄舒亳于仂于 于 C#
4. 仆仂亞仂仄亠仆亠 仄舒亳于 亳 仄舒亳于 仄舒亳于仂于 于 C#
Olga Maksimenkova
亠从亳 仂 磶从亠 仗仂亞舒仄仄亳仂于舒仆亳 Haskell
亠从亳 仂 磶从亠 仗仂亞舒仄仄亳仂于舒仆亳 Haskell
husniyarova
亠从亳 5. 亳仆亠亶仆亠 从 亟舒仆仆. 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍仂从...
亠从亳 5. 亳仆亠亶仆亠 从 亟舒仆仆. 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍仂从...
Nikolay Grebenshikov
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, Collections
Noveo
Obj c
Obj c
Bazikuz
仆仂于 亳仆亟亠从亳仂于舒仆亳 亳 舒亳亠仆仆亠 于仂亰仄仂亢仆仂亳 EXPLAIN 于 MySQL / 舒亳仍亳亶 从...
仆仂于 亳仆亟亠从亳仂于舒仆亳 亳 舒亳亠仆仆亠 于仂亰仄仂亢仆仂亳 EXPLAIN 于 MySQL / 舒亳仍亳亶 从...
Ontico
2. 仗亠舒仂 磶从舒 C#
2. 仗亠舒仂 磶从舒 C#
Olga Maksimenkova
仆仂于 MATLAB. 仂亞舒仄仄亳仂于舒仆亳亠
仆仂于 MATLAB. 仂亞舒仄仄亳仂于舒仆亳亠
Theoretical mechanics department
亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 C#
亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 C#
Dmitri Soshnikov
Formal verification of C code
Formal verification of C code
Denis Efremov
仆仂于 MATLAB. 亠从亳 1.
仆仂于 MATLAB. 亠从亳 1.
Theoretical mechanics department
1. 丐亳仗 亟舒仆仆. 仗亠舒亳亳. 于仂亟 亳 于于仂亟 C#
1. 丐亳仗 亟舒仆仆. 仗亠舒亳亳. 于仂亟 亳 于于仂亟 C#
Olga Maksimenkova
5 弌仂舒于仆亠 亳仗 亟舒仆仆, 仗亳从亳
5 弌仂舒于仆亠 亳仗 亟舒仆仆, 仗亳从亳
Vladimir Parfinenko
亠从亳 2. 弍舒从仆亠 亳仗 亟舒仆仆. . 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍...
亠从亳 2. 弍舒从仆亠 亳仗 亟舒仆仆. . 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍...
Nikolay Grebenshikov
亳从仂仍舒亶 仂仍仂舒仂于 舒弍仂舒 从舒仄亳 弍亳弍仍亳仂亠从
亳从仂仍舒亶 仂仍仂舒仂于 舒弍仂舒 从舒仄亳 弍亳弍仍亳仂亠从
CocoaHeads
亠亟舒于仍亠仆亳亠 亞舒仂于 于 仗舒仄亳 从仂仄仗ム亠舒 (c++).
亠亟舒于仍亠仆亳亠 亞舒仂于 于 仗舒仄亳 从仂仄仗ム亠舒 (c++).
Olga Maksimenkova
亠从亳 3: 亳仆舒仆亶 仗仂亳从. 弌于磶仆亠 仗亳从亳
亠从亳 3: 亳仆舒仆亶 仗仂亳从. 弌于磶仆亠 仗亳从亳
Mikhail Kurnosov
Cpp/cli particularities
Cpp/cli particularities
mcroitor
仍亠亞 仍亳舒仂于 弌仂亳仂于从舒 仗亳从仂于 于 Perl 亳 Python
仍亠亞 仍亳舒仂于 弌仂亳仂于从舒 仗亳从仂于 于 Perl 亳 Python
Yandex
亅从亠仄舒仍仆舒 仂仗亳仄亳亰舒亳 仗仂亳亰于仂亟亳亠仍仆仂亳 仆舒 仗亳仄亠亠 MongoDB Java Driver
亅从亠仄舒仍仆舒 仂仗亳仄亳亰舒亳 仗仂亳亰于仂亟亳亠仍仆仂亳 仆舒 仗亳仄亠亠 MongoDB Java Driver
Vitebsk DSC
4. 仆仂亞仂仄亠仆亠 仄舒亳于 亳 仄舒亳于 仄舒亳于仂于 于 C#
4. 仆仂亞仂仄亠仆亠 仄舒亳于 亳 仄舒亳于 仄舒亳于仂于 于 C#
Olga Maksimenkova
亠从亳 仂 磶从亠 仗仂亞舒仄仄亳仂于舒仆亳 Haskell
亠从亳 仂 磶从亠 仗仂亞舒仄仄亳仂于舒仆亳 Haskell
husniyarova
亠从亳 5. 亳仆亠亶仆亠 从 亟舒仆仆. 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍仂从...
亠从亳 5. 亳仆亠亶仆亠 从 亟舒仆仆. 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍仂从...
Nikolay Grebenshikov
Android - 03 - Multithreading, Collections
Android - 03 - Multithreading, Collections
Noveo
Obj c
Obj c
Bazikuz
仆仂于 亳仆亟亠从亳仂于舒仆亳 亳 舒亳亠仆仆亠 于仂亰仄仂亢仆仂亳 EXPLAIN 于 MySQL / 舒亳仍亳亶 从...
仆仂于 亳仆亟亠从亳仂于舒仆亳 亳 舒亳亠仆仆亠 于仂亰仄仂亢仆仂亳 EXPLAIN 于 MySQL / 舒亳仍亳亶 从...
Ontico
2. 仗亠舒仂 磶从舒 C#
2. 仗亠舒仂 磶从舒 C#
Olga Maksimenkova
亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 C#
亊亰从 仗仂亞舒仄仄亳仂于舒仆亳 C#
Dmitri Soshnikov
Formal verification of C code
Formal verification of C code
Denis Efremov
1. 丐亳仗 亟舒仆仆. 仗亠舒亳亳. 于仂亟 亳 于于仂亟 C#
1. 丐亳仗 亟舒仆仆. 仗亠舒亳亳. 于仂亟 亳 于于仂亟 C#
Olga Maksimenkova
5 弌仂舒于仆亠 亳仗 亟舒仆仆, 仗亳从亳
5 弌仂舒于仆亠 亳仗 亟舒仆仆, 仗亳从亳
Vladimir Parfinenko
亠从亳 2. 弍舒从仆亠 亳仗 亟舒仆仆. . 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍...
亠从亳 2. 弍舒从仆亠 亳仗 亟舒仆仆. . 亠亟仄亠 "弌从 亳 舒仍亞仂亳仄 仂弍舒弍...
Nikolay Grebenshikov
亳从仂仍舒亶 仂仍仂舒仂于 舒弍仂舒 从舒仄亳 弍亳弍仍亳仂亠从
亳从仂仍舒亶 仂仍仂舒仂于 舒弍仂舒 从舒仄亳 弍亳弍仍亳仂亠从
CocoaHeads
亠亟舒于仍亠仆亳亠 亞舒仂于 于 仗舒仄亳 从仂仄仗ム亠舒 (c++).
亠亟舒于仍亠仆亳亠 亞舒仂于 于 仗舒仄亳 从仂仄仗ム亠舒 (c++).
Olga Maksimenkova
亠从亳 3: 亳仆舒仆亶 仗仂亳从. 弌于磶仆亠 仗亳从亳
亠从亳 3: 亳仆舒仆亶 仗仂亳从. 弌于磶仆亠 仗亳从亳
Mikhail Kurnosov
Cpp/cli particularities
Cpp/cli particularities
mcroitor
仍亠亞 仍亳舒仂于 弌仂亳仂于从舒 仗亳从仂于 于 Perl 亳 Python
仍亠亞 仍亳舒仂于 弌仂亳仂于从舒 仗亳从仂于 于 Perl 亳 Python
Yandex

Viewers also liked (7)

Testing orm based code
Testing orm based code
Viktor Turskyi
Language Independent Validation Rules (LIVR)
Language Independent Validation Rules (LIVR)
Viktor Turskyi
JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016
Viktor Turskyi
Maybe you do not know that ...
Maybe you do not know that ...
Viktor Turskyi
Hadoop webcamp 2015
Hadoop webcamp 2015
Viktor Turskyi
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
Viktor Turskyi
It's Quiz - Cloud testing platform
It's Quiz - Cloud testing platform
Viktor Turskyi
Testing orm based code
Testing orm based code
Viktor Turskyi
Language Independent Validation Rules (LIVR)
Language Independent Validation Rules (LIVR)
Viktor Turskyi
JS Lab 2016 - Frontend trends 2015 - 2016
JS Lab 2016 - Frontend trends 2015 - 2016
Viktor Turskyi
Maybe you do not know that ...
Maybe you do not know that ...
Viktor Turskyi
Hadoop webcamp 2015
Hadoop webcamp 2015
Viktor Turskyi
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
Kharkiv JS 2015 - Creating isomorphic applications in React (en)
Viktor Turskyi
It's Quiz - Cloud testing platform
It's Quiz - Cloud testing platform
Viktor Turskyi
Ad

More from Viktor Turskyi (12)

How to create a high performance excel engine in java script
How to create a high performance excel engine in java script
Viktor Turskyi
Livr 2.0 in JS - Vinnytsia.JS 2019
Livr 2.0 in JS - Vinnytsia.JS 2019
Viktor Turskyi
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
Yet another json rpc library (mole rpc)
Yet another json rpc library (mole rpc)
Viktor Turskyi
KharkivJS 2018 Information Security Practice
KharkivJS 2018 Information Security Practice
Viktor Turskyi
"Offline mode for a mobile application, redux on server and a little bit abou...
"Offline mode for a mobile application, redux on server and a little bit abou...
Viktor Turskyi
The working architecture of NodeJs applications
The working architecture of NodeJs applications
Viktor Turskyi
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Viktor Turskyi
How to extract information from text with Semgrex
How to extract information from text with Semgrex
Viktor Turskyi
How to translate your Single Page Application - Webcamp 2016 (en)
How to translate your Single Page Application - Webcamp 2016 (en)
Viktor Turskyi
Kharkiv JS 2015: 仂仍 亳 舒亟仂 仂亰亟舒仆亳 亳亰仂仄仂仆 仗亳仍仂亢亠仆亳亶 仆舒 ReactJS (RU)
Kharkiv JS 2015: 仂仍 亳 舒亟仂 仂亰亟舒仆亳 亳亰仂仄仂仆 仗亳仍仂亢亠仆亳亶 仆舒 ReactJS (RU)
Viktor Turskyi
Mapreduce in JavaScript
Mapreduce in JavaScript
Viktor Turskyi
How to create a high performance excel engine in java script
How to create a high performance excel engine in java script
Viktor Turskyi
Livr 2.0 in JS - Vinnytsia.JS 2019
Livr 2.0 in JS - Vinnytsia.JS 2019
Viktor Turskyi
The working architecture of node js applications open tech week javascript ...
The working architecture of node js applications open tech week javascript ...
Viktor Turskyi
Yet another json rpc library (mole rpc)
Yet another json rpc library (mole rpc)
Viktor Turskyi
KharkivJS 2018 Information Security Practice
KharkivJS 2018 Information Security Practice
Viktor Turskyi
"Offline mode for a mobile application, redux on server and a little bit abou...
"Offline mode for a mobile application, redux on server and a little bit abou...
Viktor Turskyi
The working architecture of NodeJs applications
The working architecture of NodeJs applications
Viktor Turskyi
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Language Independent Validation Rules 2.0, Viktor Turskyi, talk at OSDN 2017
Viktor Turskyi
How to extract information from text with Semgrex
How to extract information from text with Semgrex
Viktor Turskyi
How to translate your Single Page Application - Webcamp 2016 (en)
How to translate your Single Page Application - Webcamp 2016 (en)
Viktor Turskyi
Kharkiv JS 2015: 仂仍 亳 舒亟仂 仂亰亟舒仆亳 亳亰仂仄仂仆 仗亳仍仂亢亠仆亳亶 仆舒 ReactJS (RU)
Kharkiv JS 2015: 仂仍 亳 舒亟仂 仂亰亟舒仆亳 亳亰仂仄仂仆 仗亳仍仂亢亠仆亳亶 仆舒 ReactJS (RU)
Viktor Turskyi
Mapreduce in JavaScript
Mapreduce in JavaScript
Viktor Turskyi
Ad

Excel in Javascript

  • 1. Excel 仆舒 JavaScript! Viktor Turskyi CTO at WebbyLab Kyiv.js 2013
  • 2. 亳亰仆亠 亰舒亟舒舒 舒仗从舒 XLS 舒亶仍 仂 仍仂亢仆仄亳 仄舒亠仄舒亳亠从亳仄亳 仄仂亟亠仍礆亳 于 弍舒亰亠亠 亳 仂弍 弍亠亰 亠于亠舒
  • 4. 丐亠弍仂于舒仆亳 从 仗仂亳亰于仂亟亳亠仍仆仂亳: 1. 仂亰仄仂亢仆仂 亰舒仗从舒 从仗仆 仄仂亟亠仍亠亶 (亟仂 2- 仄亳仍仍亳仂仆仂于 亠亠从, 400 仂仄仍, 1仄仍仆 Excel 仆从亳亶, 50 仍亳仂于) 2. 仂亟亟亠亢从舒 亠仗亠亶 于亳仍亠仆亳 仆舒 仂仆亳 亠亠从 3. 仂从舒 仗仂亳亰于仂亟亳亠仍仆仂 4. 亠弍仂仍仂亶 舒亰仄亠 舒亶仍舒
  • 6. 丐亠弍仂于舒仆亳 从 仂从亢亠仆亳 仍舒亶仆 舒弍仂舒 于 弍舒亰亠亠 舒弍仂舒 仆舒 亠于亠亠 舒弍仂舒 仆舒 仗仍舒仆亠舒(iOS, Android)
  • 8. 亰舒从舒亰亳从舒 仗仂仍亳仍亳 1. 亳亰舒亶仆 亳仆亠亠亶舒 2. 12 仄弍 xls 舒亶仍 c 仂仄仍舒仄亳 于亳亟舒: =IF($F$36 + $AF128 <= 101; SUMPRODUCT( ($S128:OFFSET ($S128;$F$36-1;0)) * ($AG$55:OFFSET($AG$55;$F$36-1;0)) * ('Sheet25'!BY84:OFFSET('Sheet25'!BY84;$F$36-1;0) + 'Sheet25'!BY194: OFFSET('Sheet25'!BY194; $F$36-1; 0) ) ); SUMPRODUCT( ($S128:$S$155) * ($AG$55:OFFSET($AG$55;100-$AF128;0)) * ('Sheet25'!BY84:BY$111 + 'Sheet25'!BY194:BY$221) ) )
  • 9. 仂亠仄 仆亠 Google Docs API: 1. 舒弍仂舒亠 仂仍从仂 于 仂仆仍舒亶仆 2. 亠仆 仄亠亟仍亠仆仆亶 3. 仂弍仍亠仄 仗亳 从仂仆于亠舒亳亳 仆亠从仂仂 xls 4. 舒从亳仄仄 40 仂仄仍 于 舒亶仍亠
  • 10. 仂仗仂 0: 仂 于仂亰仄仂亢仆仂? :) 弌 仗仂仄仂 JavaScript 于亠 于仂亰仄仂亢仆仂 ;)
  • 11. 仂仗仂 1: 仂舒仂仆仂 仍亳 JS 仗仂亳亰于仂亟亳亠仍仆仂亳? 1. 仗亠亟亠仍磳仄 亠仍亠于亠 仗仍舒仂仄 (亟于亳亢从亳) a. 舒亰亠 亳 亳 于亠亳亳 b. iOS 仂亶于舒 c. Android 仂亶于舒 2. 亳亠仄 亳仆亠亳亠从亳亶 仄亳仆亳 弍亠仆仄舒从 a. 舒亠仄舒亳亠从亳亶 于亳仍亠仆亳 b. 仍亳仆仆亠 亠仗亳 于亳仍亠仆亳亶
  • 13. 仂仗仂 2: 舒从 于亳舒 亟舒仆仆亠 XLS 舒亶仍舒? 亠仂弍仂亟亳仄仂 于亳舒 亰仆舒亠仆亳 亠仂弍仂亟亳仄仂 于亳舒 仂仄仍 亠仂弍仂亟亳仄仂 于亳舒 仆舒亰于舒仆亳亠 仍亳仂于 亠仂弍仂亟亳仄仂 于亳舒 亳仄亠仆舒 亟亳舒仗舒亰仂仆仂于 亳 亠亠从
  • 14. 舒亳舒仆: Nodejs 仄仂亟仍亳 - 仆亠 仗仂仂弍仆 亟舒亢亠 于亳舒 亰仆舒亠仆亳, 于舒仍亳于舒ム 仆舒 仂亞仂仄仆 舒亶仍舒. Ruby/Python/Perl/PHP - 仆亠 于仂亰仄仂亢仆仂亳 仗仂仍亳 仂仄仍 亳仍亳 亳仄亠仆舒 亠亠从
  • 15. 丼仂 舒弍仂舒仍仂? Perl (100 仂从) + Windows + Win32::OLE + Excel + 亟仂从仄亠仆舒亳 VBA = 仗仂亶 亟舒仄仗 于 JSON 亟舒仆仆.
  • 16. 仂仗仂 3: 亳舒仍亳 亳 仂? 1. 亢仆仂 舒亰仂弍舒 亞仂 亟舒仆仆 2. 亢仆仂 仗仂舒仆舒仍亳亰亳仂于舒 于亠 仂仄仍 3. 亢仆仂 仂仍亠亢亳于舒 亰舒于亳仄仂亳 仄亠亢亟 仂仄仍舒仄亳 4. 亢仆仂 仂 从舒从-仂 舒仆亳 5. 亢仆仂 亠舒仍亳亰仂于舒 仄仆仂亢亠于仂 仆从亳亶 c Excel 6. 亢亠仆 亟于亳亢仂从, 从仂仂亶 于亠 于仗仂仍仆亳
  • 18. 仂仗仂 4: 舒从 舒亰仂弍舒 仂仄仍 于 JS? 1. 2. 3. 4. 5. 6. 丕亠 仗亳仂亳亠舒 仂仗亠舒仂仂于 仆亳从仆亠/仗亠亳从仆亠 仂仗亠舒仂 个仆从亳亳 弌仍从亳 仆舒 亠亶从亳 弌仍从亳 仆舒 亟亳舒仗舒亰仂仆 仄亠仆仂于舒仆仆亠 舒亟亠舒
  • 19. 亠仗舒于亳仍仆仂亠 亠亠仆亳亠 弌舒仄仂仗亳仆亶 仍亠从亠 亳 仗舒亠: 1. 弌仍仂亢仆仂 2. 仂仍亞仂 3. 仂仂亞仂 从舒亰舒仍亳 仗亠于仄亳 亠于亠仆仆仄亳 仗仂弍仍亠仄舒仄亳 仗亳仂亳亠舒 仂仗亠舒仂仂于.
  • 20. 舒于亳仍仆仂亠 亠亠仆亳亠 - ANTLR 1. 2. 3. 4. 亠仆亠舒仂 仗舒亠仂于 (于从仍ム舒 JS) 亠从亳亠从亳亶 亳 亳仆舒从亳亠从亳亶 舒仆舒仍亳亰 舒 于仂亟亠 AST (Abstract Syntax Tree) 亠亠 亳亰 于亠亞仂, 仂 亠 仗仂亟 JS (亳 仆亠 仂仍从仂) 亳仗仂仍亰亠仄 于亠亳 3.3 (于 于亠亳亳 3.4 弍舒亞 于 JS 亞亠仆亠舒仂亠) http://www.antlr.org/
  • 21. 亳仄亠 仂仄仍 Formula: '=1+2*3' JS AST: [ '+', 1, [ '*', 2, 3] ] Formula: '=A1+B1' JS AST: [+, ['=', 0, 0, 0], ['=', 0, 1, 0] ] Formula: =SUM(B5:B100, 42)' JS AST: [ 'SUM', [ 'RANGE', 0, 1, 4, 1, 99 ], 42 ]
  • 22. 仂仄仗仂仆亠仆 亟于亳亢从舒 LocalRunner - 舒弍仂舒亠 舒亶仍仂仄 亳 仂仗亠亟亠仍磳 仗仂磲仂从 于亳仍亠仆亳亶 Formula Evaluator - 于亳仍磳 仂仄仍 Address Parser - 仗舒亳 舒亟亠舒 于于亠亟亠仆仆亠 仗仂仍亰仂于舒亠仍亠仄 Functions - 亠舒仍亳亰舒亳 Excel 仆从亳亶
  • 23. 亠舒仍亳亰舒亳 EXCEL 仆从亳亶 亟仆舒 仆从亳 - 仂亟亳仆 从仍舒 亠 仆从亳亳 弍亠亰 仗仂弍仂仆 亠从仂于 仗仂仍亰亠 仗亳仆亳仗 于仆亠亟亠仆亳 亰舒于亳仄仂亠亶 亟仍 仗仂亟从仍ム亠仆亳 node-qunit 亟仍 亠亳仂于舒仆亳 亳仄亠 于亰仂于舒: SQRT([ 9 ]) 于亠仆亠 3 SUM([2, [5, 6, 7, 9], 1 ]) 于亠仆亠 30
  • 24. 仂仗仂 5: 亰舒于亳亳仄仂亳 亠亠从 A1=1 A2=A1+1 A3=A1+A2 亊亠亶从舒 1 于仍亳磳 仆舒 A2 亳 A3 亊亠亶从舒 A2 于仍亳磳 仆舒 3
  • 25. 丼仂 仗亠亟舒于仍ム 仂弍仂亶 亰舒于亳亳仄仂亳? 仂 亳, 仄 亳仄亠亠仄 仆舒仗舒于仍亠仆仆亶 舒亳从仍亳亠从亳亶 亞舒 (舒仆亳仄 于 JSON 于仄亠亠 AST)
  • 26. 亳 亳亰仄亠仆亠仆亳亳 亠亶从亳 仗亠亠亳于舒 亰舒于亳亳仄亠 舒 亠仂于 舒亶仍舒 舒弍仂舒亠, 舒 于 亠舒仍仆仂亶 亢亳亰仆亳 - 仆亠. 亳亳仆舒 - 仄仆仂亢亠于亠仆仆亠 仗亠亠亠 仂亟仆亳 亳 亠 亢亠 亠亠从.
  • 27. 丐仂仗仂仍仂亞亳亠从舒 仂亳仂于从舒 仂亰于仂仍磳 仆舒仄 于亳仍 亠亶从 仂亟亳仆 舒亰. 舒 亠仂于 舒亶仍舒 舒弍仂舒亠, 于 亠舒仍仆仂亶 亢亳亰仆亳 - 仆亠. 亳亳仆舒 - 仗亠亠仗仂仍仆亠仆亳亠 亠从舒 于亰仂于仂于.
  • 28. 丼仂 亟亠仍舒? 亠 亳仗仂仍亰亶亠 亠从亳, 舒仄亳 仗舒于仍磺亠 亠从仂仄 亳 仂弍仂亟亳亠 亞舒. 亠亰仍舒 仆舒 亠舒仍仆仂亶 仄仂亟亠仍亳: 亠亰 仂亳仂于从亳 - 1舒 弌 仂亳仂于从仂亶 - 6 亠从仆亟
  • 29. 舒从 舒弍仂舒 亟亳舒仗舒亰仂仆舒仄亳 亠亠从? SUM( [ [ 21, 22, 23, 31, 32, 33 ] ] ); SUM( [ new ArrayRange([21, 22, 23, 31, 32, 33]) ] ); SUM( [ new ModelRange(model, B2:C4 ) ] );
  • 30. 仗亳仄亳亰舒亳 弍舒舒亶亠 于仆亳仄舒仆亳亠 仆舒: 1. 亠从亳于仆亠 舒仍亞仂亳仄 2. 仂仍亳亠 JSON 舒亶仍(40仄弍 仗仂于舒仍亳 于舒 弍舒亰亠) 3. 亳仄亳 仗仂 仗仂仄亳 于 NodeJS (亳仆仂亞亟舒 仆亠于仂亰仄仂亢仆仂 仂弍仂亶亳) 4. 仂仗亳仂于舒仆亳 亟舒仆仆 于 仗舒仄亳
  • 31. 仆仄亠仆 1. ANTLR 亟仍 亳仆舒从亳亠从仂亞仂 舒仆舒仍亳亰舒 2. Web Workers 亟仍 仗仂于亠仆亳 仂亰于亳于仂亳 亳仆亠亠亶舒 3. Browserify 亟仍 亳仗仂仍亰仂于舒仆亳 CommonJS 仄仂亟仍亠亶 于 弍舒亰亠亠 4. Qunit 亟仍 亠亳仂于舒仆亳
  • 32. 仂亟亟亠亢从舒 舒亰仆 仂从亢亠仆亳亶 仍 亠于亠舒 - nodejs 仍 弍舒亰亠舒 - browserify 仍 仗仍舒仆亠仂于 - phonegap