Enviar pesquisa
Carregar
仕事でも Groovy を使おう!
•
Transferir como PPTX, PDF
•
1 gostou
•
939 visualizações
O
Oda Shinsuke
Seguir
第3回 「Groovyイン・アクション」読書会 IN 関西 ショートセッション資料
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 18
Baixar agora
Recomendados
資料
資料
Bob_Mk2
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__
Tomohiro Kumagai
lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
Tomohiro Kumagai
コードで感じるKotlin入門
コードで感じるKotlin入門
iPride Co., Ltd.
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
Akira Kaneda
K初めてのstylus
K初めてのstylus
Kazuki Nakatani
メタプログラミングってなに?
メタプログラミングってなに?
KazukiWata
Recomendados
資料
資料
Bob_Mk2
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__
Tomohiro Kumagai
lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
Tomohiro Kumagai
コードで感じるKotlin入門
コードで感じるKotlin入門
iPride Co., Ltd.
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
Akira Kaneda
K初めてのstylus
K初めてのstylus
Kazuki Nakatani
メタプログラミングってなに?
メタプログラミングってなに?
KazukiWata
道具を磨き続ける
道具を磨き続ける
Takuya Fujimura
意識の低い自動化
意識の低い自動化
greenasparagus
Clustering -Elbow Chart-
Clustering -Elbow Chart-
Yuu Kimy
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
gotohayato
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
higaki
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
Yuki Fujisawa
etckeeperをopenSUSEの公式リポジトリに入れたいぞ!
etckeeperをopenSUSEの公式リポジトリに入れたいぞ!
Mitsutoshi Nakano
コミュニティのある風景
コミュニティのある風景
Ryunosuke SATO
Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用
Kenta Kase
Web技術勉強会 第37回
Web技術勉強会 第37回
龍一 田中
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Hiro Yoshioka
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
Tomohiro Kumagai
Clrh47zecl
Clrh47zecl
guest5b854d
Ruby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO について
Tomoya Kawanishi
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
Yuya Taki
JavaScript超入門 基礎
JavaScript超入門 基礎
tetsu6
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
Takayuki Serizawa
SlowQueryとの戦い
SlowQueryとの戦い
Ken Gotoh
Sql world を支える技術
Sql world を支える技術
Oda Shinsuke
Pex を試してみよう!
Pex を試してみよう!
Oda Shinsuke
Mais conteúdo relacionado
Mais procurados
道具を磨き続ける
道具を磨き続ける
Takuya Fujimura
意識の低い自動化
意識の低い自動化
greenasparagus
Clustering -Elbow Chart-
Clustering -Elbow Chart-
Yuu Kimy
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
gotohayato
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
higaki
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
Yuki Fujisawa
etckeeperをopenSUSEの公式リポジトリに入れたいぞ!
etckeeperをopenSUSEの公式リポジトリに入れたいぞ!
Mitsutoshi Nakano
コミュニティのある風景
コミュニティのある風景
Ryunosuke SATO
Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用
Kenta Kase
Web技術勉強会 第37回
Web技術勉強会 第37回
龍一 田中
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Hiro Yoshioka
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
Tomohiro Kumagai
Clrh47zecl
Clrh47zecl
guest5b854d
Ruby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO について
Tomoya Kawanishi
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
Yuya Taki
JavaScript超入門 基礎
JavaScript超入門 基礎
tetsu6
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
Takayuki Serizawa
SlowQueryとの戦い
SlowQueryとの戦い
Ken Gotoh
Mais procurados
(20)
道具を磨き続ける
道具を磨き続ける
意識の低い自動化
意識の低い自動化
Clustering -Elbow Chart-
Clustering -Elbow Chart-
Lightning introduction to CoffeeScript 20131005
Lightning introduction to CoffeeScript 20131005
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
20150131_jQueryのようにWebテストが書けるGeb Navigator APIの紹介
etckeeperをopenSUSEの公式リポジトリに入れたいぞ!
etckeeperをopenSUSEの公式リポジトリに入れたいぞ!
コミュニティのある風景
コミュニティのある風景
Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用
Web技術勉強会 第37回
Web技術勉強会 第37回
Debug Hacks at Security and Programming camp 2011
Debug Hacks at Security and Programming camp 2011
Djangoフレームワークの紹介
Djangoフレームワークの紹介
リテラルと型の続きの話 #__swift__
リテラルと型の続きの話 #__swift__
Clrh47zecl
Clrh47zecl
Ruby 勉強会 第42回 発表資料 IO について
Ruby 勉強会 第42回 発表資料 IO について
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
ランダムにおちるfeature_system spec対策rspec-retry_ex の 紹介
JavaScript超入門 基礎
JavaScript超入門 基礎
Mishimasyk6 iwatobipen
Mishimasyk6 iwatobipen
SlowQueryとの戦い
SlowQueryとの戦い
Destaque
Sql world を支える技術
Sql world を支える技術
Oda Shinsuke
Pex を試してみよう!
Pex を試してみよう!
Oda Shinsuke
開発を彩る技術たち
開発を彩る技術たち
Oda Shinsuke
Sql azure知ってますか?改訂版
Sql azure知ってますか?改訂版
Oda Shinsuke
Sql world を支える技術
Sql world を支える技術
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
Tsuyoshi Yamamoto
Destaque
(9)
Sql world を支える技術
Sql world を支える技術
Pex を試してみよう!
Pex を試してみよう!
開発を彩る技術たち
開発を彩る技術たち
Sql azure知ってますか?改訂版
Sql azure知ってますか?改訂版
Sql world を支える技術
Sql world を支える技術
Sql world とは
Sql world とは
Sql world とは
Sql world とは
Sql world とは
Sql world とは
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
第3回Grails/Groovy勉強会名古屋「Grails名古屋座談会」
Semelhante a 仕事でも Groovy を使おう!
JavaScript非同期処理 入門
JavaScript非同期処理 入門
Ishibashi Ryosuke
Ecmascript2015とその周辺について
Ecmascript2015とその周辺について
豊明 尾古
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
Takahiro Yoshimura
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
kimukou_26 Kimukou
F#によるFunctional Programming入門
F#によるFunctional Programming入門
bleis tift
1.29.user,user,user
1.29.user,user,user
Tonny Xu
AFNetworking使ってみた
AFNetworking使ってみた
Taro Matsuzawa
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
鉄次 尾形
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Kent Ohashi
Swift
Swift
Toshihiro Suzuki
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
pocketberserker
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
decode2016
Python東海GAEやってみた
Python東海GAEやってみた
Mori Shingo
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Akira Inoue
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
yhara
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
賢次 海老原
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
Takuma Morikawa
Dotnetconf2017
Dotnetconf2017
Yoshiyuki Taniguchi
この実装には問題がある!
この実装には問題がある!
GOMI NINGEN
英語コーダー大阪 ー 初めての英語コーダー教室
英語コーダー大阪 ー 初めての英語コーダー教室
Martin Heidegger
Semelhante a 仕事でも Groovy を使おう!
(20)
JavaScript非同期処理 入門
JavaScript非同期処理 入門
Ecmascript2015とその周辺について
Ecmascript2015とその周辺について
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
F#によるFunctional Programming入門
F#によるFunctional Programming入門
1.29.user,user,user
1.29.user,user,user
AFNetworking使ってみた
AFNetworking使ってみた
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
JavaからScala、そしてClojureへ: 実務で活きる関数型プログラミング
Swift
Swift
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
Python東海GAEやってみた
Python東海GAEやってみた
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Javascriptで無限ループを実現する5つの方法
Javascriptで無限ループを実現する5つの方法
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
Dotnetconf2017
Dotnetconf2017
この実装には問題がある!
この実装には問題がある!
英語コーダー大阪 ー 初めての英語コーダー教室
英語コーダー大阪 ー 初めての英語コーダー教室
Mais de Oda Shinsuke
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
Oda Shinsuke
What's hyperscale
What's hyperscale
Oda Shinsuke
Dot net+sql server tips
Dot net+sql server tips
Oda Shinsuke
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Oda Shinsuke
Spark on sql server?
Spark on sql server?
Oda Shinsuke
SQL Server のロック概要
SQL Server のロック概要
Oda Shinsuke
Blazor 触ってみた
Blazor 触ってみた
Oda Shinsuke
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
Oda Shinsuke
グラフデータベースの話し
グラフデータベースの話し
Oda Shinsuke
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Oda Shinsuke
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
Oda Shinsuke
Transaction scopeまだダメ
Transaction scopeまだダメ
Oda Shinsuke
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
Oda Shinsuke
2016年を振り返って
2016年を振り返って
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
Oda Shinsuke
Sql world とは
Sql world とは
Oda Shinsuke
Ms build 触ってみよう
Ms build 触ってみよう
Oda Shinsuke
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Oda Shinsuke
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
Oda Shinsuke
Mais de Oda Shinsuke
(20)
SQL Server2022_PSPoptimization_pub.pdf
SQL Server2022_PSPoptimization_pub.pdf
What's hyperscale
What's hyperscale
Dot net+sql server tips
Dot net+sql server tips
Sql server 2019 ざっくり紹介
Sql server 2019 ざっくり紹介
Spark on sql server?
Spark on sql server?
SQL Server のロック概要
SQL Server のロック概要
Blazor 触ってみた
Blazor 触ってみた
Linux + PHP でも SQL Server
Linux + PHP でも SQL Server
グラフデータベースの話し
グラフデータベースの話し
Sql server 2017 新機能のご紹介
Sql server 2017 新機能のご紹介
Sql server 2017 からはじめる graph データベース
Sql server 2017 からはじめる graph データベース
Transaction scopeまだダメ
Transaction scopeまだダメ
Sql serverと他dbの違いを押さえよう!
Sql serverと他dbの違いを押さえよう!
2016年を振り返って
2016年を振り返って
Sql world とは
Sql world とは
開発者の方向けの Sql server(db) t sql 振り返り
開発者の方向けの Sql server(db) t sql 振り返り
Sql world とは
Sql world とは
Ms build 触ってみよう
Ms build 触ってみよう
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
Sql server sql database 最新機能紹介
Sql server sql database 最新機能紹介
Último
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Último
(11)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
仕事でも Groovy を使おう!
1.
仕事でも Groovy を使おう!
Groovy を堂々と使える環境を作ろう
2.
アジェンダ 自己紹介 Groovy
って認知度低いよね? どうやって認めてもらうか? 体験談:私の場合 まとめ
3.
自己紹介 名前:織田 信亮 (おだ しんすけ)
勤務地:西中島で働いてます .NET (C#)がメイン(Java はよく知りません) オンラインの活動 Blog:お だ のスペース http://d.hatena.ne.jp/odashinsuke/ twitter:shinsukeoda http://twitter.com/shinsukeoda
4.
Groovy って認知度低いよね? この勉強会に参加するようになるまで知らなかった
あんまり Java に興味無かったし、アンテナ張ってなかったのかな?
5.
会社でも… 隣に座ってる人も知らなかった Java
をメインでやってる人も知らなかった みんな、知らないじゃね?
6.
どうやって認めてもらうか 便利さを見せつける!!
いきなり「アプリケーションを Groovy で作りましょう」と言っても受け入れてもらえません。 ひとまず、開発ツールやビルドプロセスにちゃちゃっと取り入れて、見せびらかしましょう。
7.
でも、環境作るの大変じゃね? セットアップ簡単だよ Windows
なら、インストーラー叩くだけ または、解凍して環境パス通すだけ
8.
新しい言語覚えるのダルイし Java の文法とほぼ同じで書けるよ
微妙に違ったりするので、全くそのまま移植は出来ないかも。 配列の初期化子とかダメじゃね?
9.
体験談:私の場合 当時取りかかっていた プロジェクトに、Excel
から .properties ファイルを生成している物があった。 多言語対応用のメッセージ管理に Excel を使用し、properties ファイルを作成していた。
10.
こんな感じ
11.
VBA から Groovy
へ 元々 Excel マクロ(VBA)で properties ファイルを作成していた。 ある時、ビルドプロセスに取り込む事に・・・。 Excel マクロだと、セキュリティを緩めないと自動で流せない!? 「なんか良い方法ない?」と相談を受ける。 そこで・・・
12.
Groovy なら簡単に出来ますよ!
____ / \ /\ キリッ / (ー) (ー)\ / ⌒(__人__)⌒ \ | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
13.
どうやったか Scriptomを使いました。
14.
import org.codehaus.groovy.scriptom.* def
messages = [ ja : new Properties(), en : new Properties() ] Scriptom.inApartment { def excelApp def workBook try { excelApp = new ActiveXObject('Excel.Application') def fileName = "~Message.xls" // ファイルを開く workBook = excelApp.workbooks.open(fileName) // セルに対しての操作 workBook.sheets(1).cells.with { def rowIndex = 2 def messageKey = cells.item(rowIndex, 1).value while (messageKey) { def japanese = cells.item(rowIndex, 2).value def english = cells.item(rowIndex, 3).value messages.ja.setProperty(messageKey, japanese) messages.en.setProperty(messageKey, english) rowIndex++ messageKey = cells.item(rowIndex, 1).value } } } finally { workBook?.close() excelApp?.quit() } } messages.each { entry -> entry.value.store(new File("~Message_${entry.key}.properties").newOutputStream(), "$entry.key") }
15.
Scriptomは遅かったので POI で
Scriptomでは結構時間が掛かったので、コメントにて教えてもらった POI で。
16.
import org.apache.poi.hssf.usermodel.HSSFWorkbook def
messages = [ ja : new Properties(), en : new Properties() ] def fileName = /~essage.xls/ // ファイルを開く HSSFWorkbookworkBook = new HSSFWorkbook(new File(fileName).newInputStream()) // セルに対しての操作 def sheet = workBook.sheets[0] def rowIndex = 1 def row = sheet.getRow(rowIndex) def messageKey = row.getCell((short) 0).getRichStringCellValue().getString() while (messageKey) { def japanese = row.getCell((short) 1).getRichStringCellValue().getString() def english = row.getCell((short) 2).getRichStringCellValue().getString() messages.ja.setProperty(messageKey, japanese) messages.en.setProperty(messageKey, english) rowIndex++ row = sheet.getRow(rowIndex) messageKey = row?.getCell((short) 0)?.getRichStringCellValue()?.getString() } messages.each { entry -> entry.value.store(new File(/~essage_${entry.key}.properties/).newOutputStream(), "$entry.key") }
17.
結構あっさり出来たので Groovy 良くね?と評価してもらい、正式に採用されました。
18.
ま と め
いきなり開発に使用するのは難しい。 良いところを見せつける。 簡単なツールとか、GAntとかが良いのかも。 ※Ant は詳しくないので、紹介しません
Baixar agora