プロが教える店舗&オフィスのセキュリティ対策術

Web上から、Excelなどで作ったファイルをMySQLに格納できるようにしたいと思っています。そして、Web上で検索して、取り出したファイルをWeb上に表示させたいのです。
そこで、Web上からMySQLにアクセスするために、サーブレット、PHP、Perlのうちどれを使ったらいいでしょうか。
また、このようなときExcelのファイルそれ自体(中身)は、MySQLの中に入るのでしょうか。それとも、
ファイル名なんかで入れるようにして、中身は別のところにあるんでしょうか。

ご教授、アドバイスなどいただけると助かります。
お願いします。

A 回答 (9件)

>csvファイルをサーバーにその まま置いておくといのは、データベースの中にとい うことでしょうか?


いえいえ、データベースとは関係ありません。別に、WEBサーバーは、HTMLやPHPやCGIしかおけないわけではなく、どんなファイルでもおけるわけですから、csvファイルをWEBサーバーの公開フォルダの中に入れておけばいいだけです。
具体的には、
http://www.city.nagoya.jp/50kyoiku/jouhou/kazu20 …
を見てみてください。CSV、となっているところが、ここで言っている、「そのまま置く」です。xxx.htmlというファイルをWEBサーバーにおいて公開するのと同じように、拡張子がなんであろうと、yyy.csvでも、置いてさえあればいいわけです。

>そうですよね、でも、HTMLに変換してページに載せたいと思っているのですが。。。
なら、自分は使ったことがありませんが、LaTeX2HTMLというツールがあります。
http://www.dmm.co.jp/mono/dvd/-/list/=/article=l …

慣れれば使い勝手がいいのかもしれませんが、お勧めはしません。
mighty5さんの要望を満たすには、wikiという仕組みが、おそらく一番あっているのでは?と思います。これは、

・複数の人(ユーザー名とパスワードで制限がかけられる)がページを編集・ファイルをアップロードできる
・複数の人がアップロードしたファイルを見る・使用ことができる

という仕組みの総称です。PHP,PerlといったCGI系の言語で
かかれていて、WEBサーバー上で動かします。(PHPは、厳密にはCGIとはいえませんしPerlもmod_perlを使う分にはCGIではないですが)
一つのプログラムではなく、「仕組み」の名前なので、この仕組みを実現するソフトウェアがいろんな言語でたくさんかかれていて、wikiクローンという名前がついています。pukiwiki,yukiwiki,mediawikiなどが有名です。
http://fswiki.poi.jp/wiki.cgi?page=Wiki%A5%AF%A5 …
を見てみてください。これだけたくさんのソフトがあります。こういうソフトの中から、一つを選んで、WEBサーバーにインストールする形になります。wikiを使って、百科事典を作ろう、というサイトもあります。wikiがどういうものか知りたいのでしたら、このページのアカウント(フリーでとれます。企業がやっているわけではないので、細かい情報は聞かれません)をとって、どこかに書き込みしてみることをお勧めします。wikiの考え方は実際にやってみないとわかりにくいので。
http://ja.wikipedia.org/wiki/メインページ

でですね・・・TeXをHTMLで見れるようにしたい、という要望を満たすには、LaTeX2HTMLを使う、という方法もあるのですが、wikiのいくつかには、拡張機能で数式を直接書くことができるものがあります。pukiwikiもその一つで、mimetexプラグインというのをいれることで、
http://www.sato.kuis.kyoto-u.ac.jp/~key/pukiwiki …
このように、直接数式を書くことができます。ちょっと小さくてみにくいですが、左上の編集を押して、編集すると、#mimetex{}の中に、直接TeXをかけることがわかります。このページは編集を許しているので、ちょっと数式をいじって、直接かけることを体感してみてください。
    • good
    • 0

どうやら、話がデータベースからそれてきましたね。

とりあえず、データベースはおいて、何がやりたいのか把握したいのですが・・・

とりあえず、おそらく、mighty5さんのやりたいのではないか?ということを推測してみます。

・いろんな人がいろんなファイル(excel,csv,texなど)をアップロードする
・閲覧者は、アップロードしたファイルをブラウザで見る・使うことができる

ことができればよいのでしょうか?まず、わからないのは、「ファイルの内部についても検索をかける必要があるかどうか」です。たとえば、「学校」という言葉がかかれているすべてのファイルを検索する、といったような要望です。
ファイル名に対しての検索か、ファイルの中身に書かれている言葉に対する検索をする必要があるのか、というところが、まずはっきりしないので、教えてください。

texを見せたい、というのは、もちろんちゃんと描画して、ということだと思いますが、あらかじめdvipdfmとかでpdfに変換してページに載せるのではだめなのでしょうか?pdfでいいなら、ずっと簡単です。
csvファイルの中身は、単に表ですが、表のまま見えればよいのでしょうか?それとも、csvファイルから自動的にグラフなどを生成する必要がありますか?なければ、別にcsvファイルをサーバーにそのまま置いておけばいいのでは?
Excelファイルも、見るだけなら、別にユーザーにOpenOffice.orgのインストールの仕方を示しておいた上で、そのまま置いておけばいいのでは?と思ってしまうのですが・・・
ファイルをただ置いておくのではだめなのでしょうか?

勘ですが、おそらく、やりたいことに一番近いのは、wikiではないかと思います。
http://pukiwiki.org/index.php?%E8%87%AA%E4%BD%9C …
を見てください。編集を押すと、ページを編集できます。ページには、必ず唯一のページ名がついています。ページには、添付ファイルをいくつでもアップロードすることができるようになっています。添付ファイルをアップロードすると、添付ファイルへのリンクがページの最後に自動的に貼られます。
ここでは、誰でも編集できるようになっていますが、ページごとにユーザー名とパスワードを設定することができます。
つまり、xxさんのページはxxという名前にして、xxさんしか編集できないことにすればいいわけです。これで、

・いろんな人がいろんなファイル(excel,csv,texなど)をアップロードする
・閲覧者は、アップロードしたファイルをブラウザで見る・使うことができる

という要望は満たされていると思います。また、このページでは、全文検索はできませんが、Namazuと組み合わせることで可能だと思います。
    • good
    • 0
この回答へのお礼

回答して頂き、どうもありがとうございます。カテゴリからそれていってしまい、申し訳ありません。どうぞもうしばらくご教授ください。お願いします。
仰られるとおり、
・いろんな人がいろんなファイル(excel,csv,texなど)をアップロードする
・閲覧者は、アップロードしたファイルをブラウザで見る・使うことができる
が実現できればと思っております。ファイルの内部については検索をかけません。ファイル名に対しての検索だけを考えます。

>あらかじめdvipdfmとかでpdfに変換してページに載せるのではだめなのでしょうか?・・・
 そうですよね、でも、HTMLに変換してページに載せたいと思っているのですが。。。

>csvファイルの中身は、単に表ですが、表のまま見えればよいのでしょうか?・・・・・Excelファイルも、見るだけなら、・・・・・ファイルをただ置いておくのではだめなのでしょうか?
 csvファイルから自動的にグラフなどを生成すること は考えておりません。csvファイルをサーバーにその まま置いておくといのは、データベースの中にとい うことでしょうか?
 
>。ページには、添付ファイルをいくつでもアップロードすることができるようになっています・・・
 このようなことができるのですか。ざっと拝見した ところ、やりたいことに近いと感じましたので、も う少し詳しく調べてみます。

お礼日時:2004/11/12 03:23

ははぁ・・・今度はTexってもしかしてLaTeXとかのTeX(テフorテック)って事でしょうか?



思うに、自分が先ほど提示した、ファイル共有+全文検索がmighty5さんが考えてる事を実現する、最も現実的な手段です。

MySQLなどのRDBMSにデータを格納したいと考えているようですがこれは何故でしょうか?

例えば、Excelを例にあげると、Namazu + xlHtmlで
| Web上で検索して、取り出したファイルをWeb上に表示させたいのです。
はWeb上に表示以外の部分は実現可能です、さらに各クライアントがExcelを持っていれば表示を行う事も出来るでしょう。(最悪、OpenOffice.orgって逃げ道もあるし)

次の、TeXですが、これはHTMLに変換する事は難しい事ではありません。HTML化して共有しておくなどの手段で全ての方が利用できるようになると思います。

もし、共有や検索・表示がメインで無いとすれば(データマイニングが目的であるとすれば)RDBMSを使うことも検討の余地はありますが、非常にファットな仕様になります、とても素人が手におえるものではないし、現在mighty5がお書きになった、ExcelやTeXの部分だけであっても、数十人月単位の開発コストを要すると思います。
    • good
    • 0
この回答へのお礼

早速回答してくださり、ありがとうございます。

>、Excelを例にあげると、Namazu + xlHtmlで・・・

 そうなのですか。丁寧に解説してくださり、たすか ります。参考になりました。
 MySQLにしたのは、すみません、特に理由はないので す。ただ、フリーで高速でいいかと思い、また検索 項目(ファイル名など)が数種類なため、そうしま した。

>TeXですが、これはHTMLに変換する事は難しい事ではありません・・・・

 すみません、もう少しご教授ください。
 こちらのほうもMySQLを使うメリットはないのでしょ うか?

 どうぞよろしくお願いいたします。
 

お礼日時:2004/11/12 01:31

もしかして、mighty5は初めの時点で大きな、勘違いをしていて自分たちも、大きな勘違いのもとで説明を行っていたんではないかと・・ふと思ったのですが。



もしかして、mighty5さんがやりたいのは文章の格納を行うためのファイル共有サーバ + 全文検索って事ではないですよね?

もし仮にそうであれば、メジャーどころでSamba + Namazu + xlHtml であたりのキーワードで検索してみてください。もし検索した結果が自分のイメージに近ければそういってください。

なんか、そんな雰囲気が漂って気ました(話がかみ合わない・・悪い意味じゃなくて)
    • good
    • 0
この回答へのお礼

まずは、ごめんなさい。紛らわしい質問を重ね申し訳ないです。みなさんを混乱させるような質問でした。
検索してみたところ、全文検索はやりたいことではなく、ファイル共有サーバーがやりたいことに当たると思いました。
 Excelの表などはCSV形式でデータベースに入れて、それらをHTML形式にするには自分で変換するように作らなくてはいけないのですよね。
別でTexファイルをデータベースに入れたく、しかし
Texファイルは/begin{document}等のマークアップ形式なので、CSV形式にしてデータベースにいれてしまうと、取り出したときソフトを使ってHTMLに変換するのは無理かと思いまして、それで、Texファイル本体はサーバにおいて、アクセスがあったときにアップロードしてブラウザに表示みたいな感じにしたいのですが。やはりファイル共有サーバを構築しなくてはいけないのでしょうか。
すみませんがよろしくおねがいします。

お礼日時:2004/11/11 22:37

betagammaさん、ieyasu さん回答お疲れ様です。



CSEってのは自分も初めて知ったソフトです。phpMyAdminは比較的、ポピュラーな手段ですね。多分、RDBMSをあまり知らないならこれらのフロントエンドを使うことがお奨めです。

ただ、暫く考えていたんですがどのくらいの人間がそのファイルにアクセスするかで話は変わってきますが、更新を行うのが自分だけであれば、Excel + VBA, Excel + Access, FileMaker のようなソフトで作ったほうが楽かも知れません。

基本的に、SQLサーバに格納するのは、「テキスト」「数値」の2種類です。それぞれに大きさの違いでいくつかのバリエーションが存在しますが。

ですから、データベースから取り出せる内容も、テキストと数値のみです、それをHTMLにする部分は自分で作る必要があります。

サーバが自社のサーバである場合は、ODBCなどを使って、Execelなどからqueryを送って、そのExcelファイルを開くたびに最新の情報が表示されるようにしておく方法もあります。
    • good
    • 0
この回答へのお礼

お礼が大変遅くなりまして申し訳ありません。
回答どうもありがとうございます。そして色々考えてくださって本当にありがとうございます。
アクセスするのは少人数で十数人くらいを想定しています。
アドバイス等をいただきまして色々考えていたのですが、ソフトで作ることを考え始めています。

>>データベースから取り出せる内容も、テキストと数値のみです、それをHTMLにする部分は自分で作る必要があります

 そうですか・・・自分で作るしかないのですね。
 ファイル名だけデータベースに入れて、ファイル自 体は別にサーバ上に置くという方法について知りた いのですが、ファイル名がデータベースにアクセス
 された時、そのファイル自体(HTML)はデータベース にないということは、どのようにしてWeb上にファイ ル(HTML)は表示できるのでしょうか。アクセスされ たファイル名とファイル自体との連携はどうとられ ているのでしょうか。
 教えていただけると助かります。どうぞよろしくお 願いします。

お礼日時:2004/11/11 17:34

CSEというデータベース操作ツールを使えば、


ほとんどEXECL感覚で操作できますし、
エクセルファイルへのエクスポートや、
csvファイルからのインポート等が非常に簡単に行えると思います。
【CSE】つみきWEB様↓
http://www.hi-ho.ne.jp/tsumiki/

参考URL:http://www.hi-ho.ne.jp/tsumiki/
    • good
    • 0
この回答へのお礼

アドバイスして下さり、どうもありがとうございます。

>CSEというデータベース操作ツールを使えば、・・・
 知りませんでした。早速見てみたいと思います。

お礼日時:2004/11/08 21:50

まず、cvsではなく、csvです。

sとvが逆です。cvsは、全然違う分野のソースコードのバージョン管理ソフトの名前なので、詳しい人に聞くと混乱を招くので、覚えましょう。
で、
>HTMLファイルなどのタグ付きファイルをMySQLに格納したいとき、タグの部分もcvs形式にされるのでしょうか。
ですが、HTMLなどのタグ付きファイルのデータは、内部でtableタグを使っていますよね?で、tableタグは自動的に読み込んでくれないので、以下の二つの方法のどちらかをとる必要があります。

(1)簡単な表の場合、テーブルをブラウザで表示させて、Excelにコピペすれば、エクセルは賢いので、表の形にしてしまいます。それをcsv形式に変換して、MySQLに読み込みます。

(2)ただ、上記の方法だと、一個二個ぐらいなら早いのですが、表がたくさんある場合は、大変面倒くさくなります。その場合は、PerlとかでHTMLタグを取り除いて、
a)一回csvに変換してからMySQLに読み込むか
b)MySQLにPerlなどから直接接続してデータを追加する
方法があります。

MySQLの操作は、mysqladmin,mysqlコマンドでできますが、グラフィカルにやりたい場合は、phpMyAdminというソフトがあります。これは、phpで作られたソフトウェアで、phpのあるapacheの上で(別にapacheじゃなくてもいいですが、実際問題、apacheを使うのが一番楽でしょう)、ブラウザ上から操作します。
http://www.trustbee.com/phpMyAdmin-jp/
    • good
    • 0
この回答へのお礼

回答して下さりまして、ありがとうございます。
>cvsではなく、csvです・・・・・
 すみません、間違えました…。気をつけます。

>tableタグは自動的に読み込んでくれないので・・・
 これは、MySQLに格納するときもMySQLから取り出す ときも読み込まないのでしょうか。それと、tableタ グ以外も同様なのでしょうか。
 
>PerlとかでHTMLタグを取り除いて、a)一回csvに変換してからMySQLに読み込むか

 それではhtmlファイルを格納したいときは、タグを取り除いてa)のようにした場合、取り出してWeb上で表示させたいときは、どうしたらいいのでしょうか。

○ファイルをDBで扱うことについてなのですが、このようにテーブル中にデータを格納する方法のほかに、
データはファイルとして置き、ファイル名をテーブルで管理することを考えているのですが、このことについて何か参考になるURLなどがあれば教えてください。

おねがいします

お礼日時:2004/11/08 19:05

「Excelなどで作ったファイルをMySQLに格納したい」


この文は、三通りに解釈できますので、そこのところを明確にしてください。
(1)Excelで作ったデータ(表)を、MySQLに格納したい
たとえば、Excelに住所録が書いてあって、WEB上から検索やレコードの追加などの処理を加える必要がある場合とかです。この場合は、No.1さんがおっしゃっているように、Excelで作ったデータを、csv形式にして、MySQLに読み込んでいくのが一番一般的です。

(2)たくさんのExcelファイルがある。ユーザーがそのExcelファイルをWEB上からダウンロードできるようにしたい。Excelファイルの中身は、WEB上から見る必要がない。
この場合、普通は、Excelファイルをどこかのディレクトリに置いて、PHPなどのスクリプト言語で、それらへのリンクを作るのが一般的なやり方といえます。Excelのファイルサイズが小さければ、MySQL自身の中に、バイナリデータとしてExcelファイルを埋め込むことは可能ですが。

(3)Excelファイルを、ユーザーからの指定にあわせて、自動生成したい。
この場合は、「MySQLでデータを取得する」「取得したデータを、Excel形式に変換して出力する」という2動作を行わなければならず、すでにMySQLの問題ではなく、スクリプトやデータ変換の問題になります。
    • good
    • 0
この回答へのお礼

早速ご回答いただきまして、ありがとうございます!

>この文は、三通りに解釈できますので、そこのところを明確にしてください。
すみません、情報不足でした…。3通りのうち、(1)に当たります。やりたいことは、下に書かせていただいたものです。
あと、追加でcvs形式について質問なのですが、HTMLファイルなどのタグ付きファイルをMySQLに格納したいとき、タグの部分もcvs形式にされるのでしょうか。それもMySQLから取り出してWeb上に表示できるでしょうか。
的外れな質問をしているかもしれませんが、ご容赦くださいませ。ご教授お願いします。

お礼日時:2004/11/06 11:02

| 、Excelなどで作ったファイルをMySQLに格納できるようにしたいと思っています。



ファイルを格納するんではなくて、当然「ファイルの中身」を格納するわけですよね?だとすれば、何らかの方法で、MySQLにテーブルを作成して、EXCELのファイルではなく、データをcsv形式などにしてインポートさせる必要があります。

EXCELのファイルは関係ないです。ファイルの中のデータをMySQLに入力または移行する形です。さらに、画面に表示する場合は、PerlでもPHPでも、サーブレットでもなんでも良いですが自分でデータの読み込みからレイアウトまでプログラムする必要があります。

いまいちmighty5さんがやりたい事が判らないのですが・・・恐らく、壮絶な勘違いをされているような感じがします。もう少し、具体的に書いてください。

面白そうだから、とことん相談に乗りましょう。

この回答への補足

追加でcvs形式について質問なのですが、HTMLファイルなどのタグ付きファイルをMySQLに格納したいとき、タグの部分もcvs形式にされるのでしょうか。それもMySQLから取り出してWeb上に表示できるでしょうか。

補足日時:2004/11/06 11:06
    • good
    • 0
この回答へのお礼

早速ご回答いただきまして、ありがとうございます!

>いまいちmighty5さんがやりたい事が判らないのですが・・・

すみません、情報不足でした…。もう少し具体的に書かせていただきます。
毎月行うアンケートの種類が何種類かありまして、仮に10種類とします。それらを月ごとに検索できるようにしたいと思っています。例えば、2004年10月で検索すると、その月にWeb上からデータベースへ入れた10種類のアンケートが検索結果として出てきて、その中から1種類のアンケートを選んでWebに表示させたいのです。

>ファイルを格納するんではなくて、当然「ファイルの中身」を格納するわけですよね?

まだデータベースについての知識が足りないもので、本当に大変な勘違いをしているようです。的外れなことを言ってしまうかもしれませんが、ご容赦くださいませ。
Excelで作成したアンケート集計のデータは表形式のものです。これを作った本人がWeb上からデータベースに入れれるようにして、別の人がWeb上でその表をみれるようにしたいと考えております。表の場合もcvs形式にするのでしょうか。

>面白そうだから、とことん相談に乗りましょう。
どうもありがとうございます。助かります。長くなりましたが、よろしくお願いします。

お礼日時:2004/11/06 10:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!