2011年11月29日火曜日

RubyでExcelに出力する

●Ubuntu上でRubyプログラムでExcelファイルを書き出す(出力)することができるだろうと思って調べました。以下のサイトを参考にさせて頂きました。あらかじめ、「gem install spreadsheet」を行なっておき、rubyプログラムの中で、require します。

http://www.dreamedge.net/archives/97



●逆にExcelファイルから読み出す方法については、以下のサイトを参考にさせて頂きました。プログラムの先頭部分で require 'rubygems'   および require 'spreadsheet' を記述します。

http://doruby.kbmj.com/yuki-Ruby/20091216/Ruby_Excel_



●またExcelファイルから読み出すためにparseexcelを使用する方法について以下のサイトに書いてあります。予め「gem install parseexcel」を行なっておき、rubyプログラムの中で、requireするようです。

http://d.hatena.ne.jp/u-ichi/20080605/1212639221
http://www.weheartcode.com/2007/10/05/reading-an-excel-file-with-ruby/


以下は上記のサイトに書いてあったサンプルを少し修正したものです。引数で指定したExcelファイルについて、内容を画面に出力します。
-----------------------------------------------------------

require 'rubygems'
require 'parseexcel'

workbook = Spreadsheet::ParseExcel.parse(ARGV[0])
worksheet = workbook.worksheet(0)

  j=0
worksheet.each { |row|
  i=0
  if row != nil
  row.each { |cell|
    if cell != nil
      contents = cell.to_s('utf-8')
      puts "Row: #{j} Cell: #{i}> #{contents}"
    end
    i = i+1

  }
  end
  j = j+1
}
------------------------------------------------------


PHPでExcel形式で出力するには

Ubuntu上でPHPを使ってExcelファイルを作成できるプログラムはないかと思って調べました。以下のサイトによればPHPExcelを使用するとExcel2007の形式でファイル出力できます。プログラムの中でPHPExcel が存在するパスを指定してincludeする必要があります。

http://news.mynavi.jp/articles/2009/03/06/phpexcel/index.html


なお、PHPExcelを導入するには、以下のサイトを参照しました。(PHPExcelの現時点のバージョンは1.7.6) ダウンロードしたZipファイルに含まれるフォルダを任意の場所に配置するという方法とpearコマンドを使用する方法があるようですが、私は、pearコマンドを使用しました。pearコマンドを実行したあと調べてみると /usr/share/php/PHPExcel/ というフォルダに PHPExcel.php というファイルができていたので、そのフォルダパスをプログラムのソースの中に指定しました。 

http://phpexcel.codeplex.com/

実際に、Ubuntu上で、Excel2007形式のファイルを出力して、Ubuntu上のOpenOffice(LibreOffice) と、Windows上のExcel2007で、それぞれ開いて中身を見られることを確認しました。OpenOffice(LibreOffice) と、Windows上のExcel2007では、若干、表示の書式が異なっていました。(一部のセルの文字がOpenOffice(LibreOffice)では文字が右寄せなのに、Windows上のExcel2007ではセルの中央に書かれていました。)


既存のExcel ファイルをテンプレートとして、修正をかけて別名保存することもできます。Excel2007形式の場合、テンプレートを、OpenOfficeで作成してしまうと失敗します。(テンプレートはExcelで作成する必要があります。)
なお、テンプレートのセルに式が定義してあった場合には、修正して別名保存すると、式がなくなってしまいただの数値に変化してしまう場合があります。



2011年11月28日月曜日

Ubuntu の人気が落ちてる?

以下のサイトによれば、Ubuntuのシェアが落ちて、代わりにLinuxMintが伸びてきているらしい。

http://news.mynavi.jp/news/2011/11/25/047/index.html

http://news.mynavi.jp/news/2011/11/24/006/index.html

あーあ Ubuntuにようやく慣れてきたかなと思ったところだったのに。それにしてもMintって聞いたことなかった。 

しかし調べてみると、LinuxMint はUbuntuをベースに作成されているとのこと。見た目が違うだけで中身はUbuntuと同じようだ。たとえ LinuxMintが主流になったとしても、Ubuntuで経験したことはどうやら無駄にはならないようだ。よかった。よかった。(^^)

2011年11月27日日曜日

Perl で Excelファイルに書き込みをするには

Linux の環境で、Perl でExcelファイルに書き込みができるだろうかということを調べてみました。

●以下のサイトには、Excelファイルを新規に作成して書き込みを行うための情報が記載されています。
Spreadsheet::WriteExcel を使用します。(なお、予め、cpanでSpreadsheet::WriteExcel を取り込んでおきます。)

http://homepage3.nifty.com/hippo2000/perltips/Spreadsheet/WriteExcel.htm

ただし、Excelファイルを新規に作成するのではなくて、既存のExcelファイルに書き込みをするにはどうすればよいかというと、次のサイトに書いてある情報が参考になります。 Spreadsheet::ParseExcel::SaveParser を使用します。(なお、予め、cpanでSpreadsheet::ParseExcel::SaveParser を取り込んでおきます。)

http://search.cpan.org/~kwitknr/Spreadsheet-ParseExcel-0.2603/ParseExcel/SaveParser.pm

やってみると、確かに既存のExcelファイルに追加で書き込みできることがわかりました。ただし、元のExcelファイルで、式が定義されていたセルが書き込み後には 0などの数値に変化していました。


●Excel2007形式で、ファイルを作成するにはExcel::Writer::XLSXを使用することで対応できます。


use Excel::Writer::XLSX;                                   # Step 0
   my $workbook = Excel::Writer::XLSX->new( 'perl.xlsx' );    # Step 1
    $worksheet = $workbook->add_worksheet();                   # Step 2
    $worksheet->write( "A1", 'Hi Excel!' );                    # Step 3
   





2011年11月26日土曜日

PHP で株価を取り込む

PHP で株価を取り込む

以下のサイトを参考にさせていただきました。

http://d.hatena.ne.jp/iww/20101107


なお、simple_html_dom.php というファイルをインクルードする必要がありますが、以下のサイトからダウンロードできます。 

http://sourceforge.net/projects/simplehtmldom/files/simplehtmldom/

Ruby で株価を取り込む(nokogiriのインストール)

Ruby製nokogiriで株価を切り刻もうというタイトルのサイトがあったので以下にメモしておきます。
http://d.hatena.ne.jp/keyesberry/20100302/p1

さて、上記を使用するには Ruby製nokogiri というのを入れてやる必要があります。そのための手順は以下のとおりです。(環境はUbuntu11.10)


sudo apt-get install libxslt1-dev libxml2-dev
sudo apt-get install rubygems
gem install nokogiri
以上のやり方で、nokogiri をインストールすることはできたのですが、インストールの前後でrubyのバージョンが、1.9.2から、1.8.7に変わってしまいました。


尚、以下のサイトでも、Rubyで株価を取り込む方法が記述されているようです。(まだ試していません。)


http://d.hatena.ne.jp/unageanu/20071102/1194009222

OpenOffice Base に ODBC経由でPHPから接続できるか?

OpenOffice Base に ODBC経由でPHPから接続できるか?以下のサイトを読むと「できない」と書いてある。
http://user.services.openoffice.org/en/forum/viewtopic.php?f=40&t=5925
http://user.services.openoffice.org/en/forum/viewtopic.php?f=40&t=29298