2011年11月17日木曜日

OpenOffice のマクロをコマンドラインから実行するには

例えばコマンドラインから以下のように入力するとOprnOfficeのマクロが実行される。

soffice.exe macro:///Standard.Module1.Main


以下のサイトなどを参考
http://hermione.s41.xrea.com/pukiwiki/index.php?OOobbs2%2F4


以下は、マクロのサンプル



Sub Main

msgbox "hello"

Dim DatabaseContext As Object
Dim DataSource As Object
Dim Connection As Object
Dim Statement As Object
Dim ResultSet As Object

DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("kigyou")
Connection = DataSource.getConnection("", "")

Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("select * from 連絡先")

If IsNull(ResultSet) Then
  MsgBox "検索されたレコード件数が0件"
Else
  While ResultSet.next
    sValue1 = ResultSet.getString(1)
 '  sValue2 = ResultSet.getLong(2)
   sValue2 = ResultSet.getString(2)


    msgbox sValue1
    msgbox sValue2
  Wend
End If

Statement.Close()
Connection.Close()
Connection.Dispose()

msgbox "end"



End Sub

2011年11月16日水曜日

Ubuntu11.10 で Apache と PHPを使えるようにする

Ubuntu11.10 でApacheサーバをインストールするには

次のサイトを参考にして
http://dqn.sakusakutto.jp/2008/08/ubuntu-804apache2.html

以下のように入力すればよい。
sudo apt-get install apache2

Webブラウザで、http://localhost/ を指定すると
/var/www/index.html  の内容が表示される。


なお、PHPが使用できるようにするためには以下のサイトを参考にすると
http://builder.japan.zdnet.com/os-admin/20384129/

以下のように入力すればよい。


sudo apt-get install php5 libapache2-mod-php5


なお、phpMyAdmin をダウンロードして、/var/www の配下に解凍することにより使用することができるようになった。

(2014.3.11追記)
phpmyadmin の設定方法については以下のページでも記述しています。

http://chaos-fractal.blogspot.jp/2013/02/ubuntu-1210-mysql.html


mysqlデータベースに接続するPHPのサンプルコードは以下のとおり

--------------------------------------------

<html>

<?php
$server    = '127.0.0.1';
$username  = 'root';
$password  = 'xxxx';

$link = mysql_connect($server, $username, $password);
if (!$link) {
    die('can not connect : ' . mysql_error());
}
echo 'successfully connected';

$db_selected = mysql_select_db('user',$link);
if (!$db_selected){
    die('fail to select database'.mysql_error());
}

$result = mysql_query('SELECT * FROM pass');
if (!$result) {
    die('query fail'.mysql_error());
}

    print("<br>");
while ($row = mysql_fetch_assoc($result)) {
    print($row['id']);
    print("\n");
    print($row['pass']);
    print("<br>");
}
mysql_close($link);
?>

</html>

2011年11月14日月曜日

PHPとUbuntuについて

●PHPについての本を図書館から借りてきました。
以下のサイトからダウンロードしてWindows上でPHPを使い始める方法が書いてありました。

http://jp.php.net/downloads.php



●一方、私の使用しているUbuntu11.10でコンソールから
php と入力してみると以下のように表示されました。

----------------------------
プログラム 'php' はまだインストールされていません。  次のように入力することでインストールできます:
sudo apt-get install php5-cli
----------------------------

言われるままに、コマンド入力するとPHPが使用できるようになったようです。


ファイル名を指定して、そのファイル読み込み画面に表示させるサンプル

<?php
echo "input file name:";
$a = trim(fgets(STDIN));
readfile($a);
?>


●なお、pear と入力すると以下のように表示されました。(phpのpearというのは何でしょう?perlでいうところのcpanのようなものでしょうか?)

-------------------------------------------

プログラム 'pear' はまだインストールされていません。  次のように入力することでインストールできます:
sudo apt-get install php-pear
-------------------------------------------





2011年11月9日水曜日

OpenOffice Baseを使ってみた。

Microsoft Accessの代わりになるかもしれないと思い、OpenOffice Baseを使ってみた。
テーブルをふたつ用意して、リレーションを設定することによりクエリーを作成。
その状態で、クエリーを実行できる。また、クエリーに対応したSQLを表示できる。
SQLを変更すると、それに対応してクエリーのデザインも変更されることを確認。
Accessほど使い勝手はよくないかもしれないが似たようなことができることを確認した。

Windows版の場合にはAccessのmdbファイルに接続してテーブルの中身を見ることができた。(Linux版の場合にはできない)

あとは、Acesss VBAのようなことができるかどうかである。
つまりBasicでプログラミングがどの程度までできるかどうかが気にかかる。
以下のサイトに情報が載っているようである。

http://homepage1.nifty.com/tabotabo/ooo/ooolinks.htm
http://itref.fc2web.com/openoffice/basic/index.html

2011年9月2日金曜日

Visual Studio 2010 express をダウンロードしてみた。

ダウンロードしたのは、以下の3つ

Visual Basic
Visual C#
Visual C++

.NETの特徴としては、言語によらずオブジェクトが使用できるという
メリットがあったと思う。
Basic のプロジェクトでクラスを作成して、それをC# 側から
参照して使用するということをやってみた。
ただし、Basicのプロジェクトでは、Msgbox を出すように
プログラムしたつもりだったのに、実行してみるとMsgbox
を出すところでとまってしまった。つまりクラスの中から
Msgboxを出すことができなかったというわけ。コンソール
に出力することしかできなかった。


Basic で作ったクラスをC++ 側から参照して使用する
こともできた。

2011年9月1日木曜日

Java でExcel を操作する(POIを使用)


Java でExcel を操作することはできないかと探し
以下を参考にしました。

http://www.javadrive.jp/poi/

POIのバージョンは、この時点での最新バージョンで
ある、3.8-beta4を使用しました。
 はじめLinuxのJavaの環境でやってみたのですが、
「許可がありません」というメッセージがでてコンパイル
できませんでした。

ただWindowsの環境で動作することが確認できました
ので、いいかなと思っています。


サンプルソース(testというシートを作成する)


import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class sample{
  public static void main(String[] args){
    HSSFWorkbook workbook = new HSSFWorkbook();

    workbook.createSheet("test");

    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample.xls");
      workbook.write(out);
    }catch(IOException e){
      System.out.println(e.toString());
    }finally{
      try {
        out.close();
      }catch(IOException e){
        System.out.println(e.toString());
      }
    }
  }
}



サンプル2(sample2_1.xlsというファイルを作成する。)

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.*;

public class Sample2_1{
  public static void main(String[] args){
    Workbook wb = new HSSFWorkbook();

    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample2_1.xls");
      wb.write(out);
    }catch(IOException e){
      System.out.println(e.toString());
    }finally{
      try {
        out.close();
      }catch(IOException e){
        System.out.println(e.toString());
      }
    }
  }
}


Excelファイルを編集するサンプル。sample2_2.xls を読み出して、左から6列について、2行めに値が入っていたら3行めにCHeck! と記入します。その後sample2_3.xls という名前で保存します。

//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;

public class Sample2_2{
  public static void main(String[] args){
    FileInputStream in = null;
    Workbook wb = null;

    try{
      in = new FileInputStream("sample2_2.xls");
      wb = WorkbookFactory.create(in);
    }catch(IOException e){
      System.out.println(e.toString());
    }catch(InvalidFormatException e){
      System.out.println(e.toString());
    }finally{
      try{
        in.close();
      }catch (IOException e){
        System.out.println(e.toString());
      }
    }

    Sheet sheet = wb.getSheetAt(0);
    Row row1 = sheet.getRow(1);
    Row row2 = sheet.createRow(2);

    for (int i = 0 ; i < 6 ; i++){
      Cell cell = row1.getCell(i);
      if (cell != null){
        row2.createCell(i).setCellValue("Check!");
        System.out.println(cell);
      }
    }

    FileOutputStream out = null;
    try{
      out = new FileOutputStream("sample2_3.xls");
      wb.write(out);
    }catch(IOException e){
      System.out.println(e.toString());
    }finally{
      try {
        out.close();
      }catch(IOException e){
        System.out.println(e.toString());
      }
    }
  }
}



2011年7月6日水曜日