AIと戦って、あなたの人生のリスク診断 >>

HTMLで表形式で表示している内容をCSV形式で書き出してファイルに保存したいのです。
JavaScriptの場合は仕様上、保存できないことは調べて分かりました。
例えば、Writely(http://www.writely.com/)では作成した文書をPDF形式などで保存してダウンロード
して保存できますが、あれはどのようにやっているのでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

#2補足>


ローカルでXMLファイルの処理をするというのが目的であれば、
WSH のJScript を使ってできます。
クライアントの操作環境としてブラウザ表示が必要ということであれば、HTA (HTMLの拡張子をHTA にしたもの)にすればアプリケーションとして実行できますので、ローカルでのファイルの保存などもできるようになります。(HTML のままでもActiveX による実行許可があればできる)
    • good
    • 0
この回答へのお礼

できました!

WSHが使えるのですね。全く思いつきませんでした。FSOで無事保存できました。

HTAというのは初めてですね。調べてみようと思います。

ありがとう御座いました。

お礼日時:2006/08/21 09:54

msx68000さん


正確に伝えたいことは、サーバ上で生成したコンテキストを
1. CSV 形式(テキスト)としてダウンロードさせたい。
2. PDF形式へエンコード(バイナリ)してダウンロードさせたい。
ですよね。

まず Webサーバで perl (CPANモジュール利用)、php(PDF関数)が
使えるか確認なさってください。使えるのであれば、入力された値に
対して出力(テンプレートへの出力)方法の設計通りになるように
それらをモジュールや関数に値をキックするだけです。

JavaScript はクライアント(Webブラウザ)側で動作させる簡易
スクリプト言語なので、ご要望の方法で利用することはあまり考え
にくいと思います。

この回答への補足

tw88888888様、回答ありがとう御座います。

説明が足らずに申し訳ありませんでした。
実際は、生成するのはサーバ上でなくクライアント側です。スタンドアロンで動作するものです。

あるXMLファイルがあり、これを表形式で表示するためにHTMLに変換するXSLTスタイルシート(1)を作成しています。これは当該XMLファイルを開くときに自動で処理されるスタイルシートです。また、別にCSV形式に変換するXSLTファイルを作成しておき、必要に応じて、(1)に埋め込んだJavaScriptのコードで変換処理を行ってファイルに書き出したい。というのが目的です。

perlは良く知らないのですが、クライアント側だけで行うことは無理ということですか。。。

補足日時:2006/08/18 14:39
    • good
    • 0

サーバー側でperlとかphpを使えばいろいろなことができます。



たとえばpdfを出力、画像に文字をいれて表示、
エクセルデータの作成、もちろんcsvの作成
などもできます。
    • good
    • 0
この回答へのお礼

なるほど。

私はJavaScriptしか知らないので、要勉強ですね。
ありがとう御座いました。

お礼日時:2006/08/18 14:15

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qjavascriptでテキストファイルを作成したい

javascriptを勉強していて演算した結果をテキストファイルにして、その結果をテキストファイル内に書き込んで新しくデスクトップに作成するというプログラムを作りたいと考えています。
ですが、まずは以下の条件を満たすプログラムの内容を教えていただきたいと思います。

私はHTMLと同時にjavascriptを作っているのですがとりあえず、

・「テキストファイルの作成」というボタンをHTML内に作ります。
・そのボタンを押すとjavascriptのfunctionが動作し、「テキストの書き込みに成功しました」という内容が書かれたテキストファイルがデスクトップに新たに作成される。

というプログラムを知りたいです。

基礎的な原理だけを知りたいので上の条件を満たすプログラムを教えていただきたいと思います。
テキストファイルをデスクトップに作る方法と、作るテキストファイルにどのようにしてテキスト内容を書き込めばいいのか分かりません。
HTMLの部分がめんどくさければjavascriptの部分だけでも構いません。
よろしくお願いします。

Aベストアンサー

#2 です。

勉強目的ということでしたのでブラウザ(IE)依存で問題ないと考えていました。WSH でも hta でも JScript は利用できるはずなので。
質問者さんは以下の希望を持っていると想像していました。

・JavaScript だけでテキストファイルに出力したい
・ローカルで実行するので、ブラウザ依存で構わない (Webサイト制作が目的ではない)

そうではなく、

・Webサイト制作する上での JavaScript を知りたい
・標準的な JavaScript を学びたい (ブラウザ依存はしたくない)
・JavaScript 以外の言語(PHPなど)を学ぶこともいとわない

ということでしたら、私の見込み違いですのでどうぞスルーしてください…。
サーバサイドでファイル出力するのが一般的な手法だと私も思います。

Q外部ファイルにしたら文字化けしてしまいました

FC2ブログで下記【1】を

<script type="text/javascript">
<!--
【1】
// -->
</script>

で囲んで直接プラグインに書き込んだら
文字化けせずに表示されたのですが、

外部ファイルにして

<script type="text/javascript" src="【1】のJSファイルのパス"></script>

をプラグインに書き込んだら、
画像リンクはうまく表示されたのですが、
文字化けしてしまいました。

文字化けしない方法はないでしょうか?


【1】
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先のアドレス(数字は画像と対応)
jmp[0] = "http://~";
jmp[1] = "http://~";
jmp[2] = "http://~";
jmp[3] = "http://~";
jmp[4] = "http://~";
// 画像のアドレス(数字はジャンプ先のアドレスと対応)
img[0] = "img/img1.jpg";
img[1] = "img/img2.jpg";
img[2] = "img/img3.jpg";
img[3] = "img/img4.jpg";
img[4] = "img/img5.jpg";
n = Math.floor(Math.random()*jmp.length);
document.write("<a href='"+jmp[n]+"' target='_blank'>");
document.write("<img src='"+img[n]+"' border='0'>");
document.write("</a>");

FC2ブログで下記【1】を

<script type="text/javascript">
<!--
【1】
// -->
</script>

で囲んで直接プラグインに書き込んだら
文字化けせずに表示されたのですが、

外部ファイルにして

<script type="text/javascript" src="【1】のJSファイルのパス"></script>

をプラグインに書き込んだら、
画像リンクはうまく表示されたのですが、
文字化けしてしまいました。

文字化けしない方法はないでしょうか?


【1】
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先...続きを読む

Aベストアンサー

自分は5歳児だろうが主婦だろうが手は抜きません。


とりあえず試しに、

<script type="text/javascript" src="JSファイルへのパス" charset="Shift-JIS"></script>

~と言う風にしてみて下さい( charset="Shift-JIS" というのを付け足す)。それで文字化けが直るようなら、貴方のJSファイルの文字コードは「Shift-JIS」と言う事になります。FC2のBlogサービスですか?それでHPやBlogを作っているのなら、基本的には文字コードはサーバ側、つまりこの場合は「EUC-JP」に統一するべき~という事になります。

一般的に、Windowsの標準の環境だと。前段で述べた様な、様々な種類の文字コードを扱う事が出来ないので。事実上、作業は「Shift-JIS」1択と言う事になります。また『メモ帳(notepad.exe)』では「改行コード」を編集出来ないので、HTMLやJavaScript(JSファイル)を編集するには力不足です。何か特別なソフトとかを使わずに、Windows標準の『メモ帳(notepad.exe)』でJSファイルを編集したのであれば、十中八九、文字コードは「Shift-JIS」になっているはずです。


>文字コード
「文字コード」とは、コンピュータ上でテキストファイル(*.txt)をやり取りする時の方式の事で、現在では100種類近くの文字コードがあります。インターネット上でよく使われる文字コードは、「UTF-8」、「Shift-JIS」、「EUC-JP」~の3種類で、基本的にはこれだけ押さえておけばOKです。

考え方としては、日本語や英語のように。同じ意味を持つ文書でも色んな国の言葉で書く事が出来る様に。コンピュータ上での文書の表し方にも方言というか、色んな国の言葉がある様な物だと思ってて下さい。先に述べた「改行コード」や「BOM無し」とかは忘れて下さい。

で、初心者はコレだけ覚えて置いて欲しいのですが…

・半角英数文字だけなら文字化けは起きない

~と(実際は違いますが、話がややこしくなるので簡単にします)。半角英数文字ってのは「abc,?!#123456+-=」みたいな文字の事です。全角文字とは違うので注意して下さい(全角文字 → abc,?!#123456+-=)。従って逆説的に言えば「日本語を使う時は常に文字コードの影響を受ける」と言う事です。

自分は5歳児だろうが主婦だろうが手は抜きません。


とりあえず試しに、

<script type="text/javascript" src="JSファイルへのパス" charset="Shift-JIS"></script>

~と言う風にしてみて下さい( charset="Shift-JIS" というのを付け足す)。それで文字化けが直るようなら、貴方のJSファイルの文字コードは「Shift-JIS」と言う事になります。FC2のBlogサービスですか?それでHPやBlogを作っているのなら、基本的には文字コードはサーバ側、つまりこの場合は「EUC-JP」に統一するべき~という事になります。

...続きを読む

Qwebブラウザからローカルファイルの読み込み

はじめまして、質問します。
webブラウザからローカルファイルの読み込みを行いたいのですが、
セキュリティーの問題でアクセスを拒否されました。
その回避法として、FileAPIによって
htmlのinput要素かドラッグアンドドロップを用いて
ローカルファイルを読み込めることが分かりました。

しかし、私がやりたいことは
絶対パスでローカルファイルを読み込むことです。

そのようなことは可能でしょうか?
上記の方法だとinputからフォルダをたどってファイルを選択するので
原理的には可能なような気がするのですが・・・・

言語はjavascriptです。
よろしくお願いします。

Aベストアンサー

>その回避法として、FileAPIによって
>htmlのinput要素かドラッグアンドドロップを用いて
>ローカルファイルを読み込めることが分かりました。

>上記の方法だとinputからフォルダをたどってファイルを選択するので
>原理的には可能なような気がするのですが・・・・

根本的な部分で勘違いをされている気がします。ドラッグ&ドロップで渡されるのはファイルのパスなどではありません。これはFileListオブジェクトという専用のオブジェクトで、その中に個々のファイルに関するFileオブジェクトが保管されています。このFileオブジェクトをFileReaderなどに渡すことでその内容を読み取ったり出来る仕組みになっています。

ただし、ここで勘違いしてはいけないのですが、このFileオブジェクトには、ファイルのパス情報は含まれていないのです。あるのはファイル名の情報だけ。そのファイルがどこにあるかといったことはJavaScript側からは隠蔽されており、スクリプトからタッチできません。

つまりJavaScriptでは、「パスによるファイルの指定」は過去も現在も首尾一貫して禁止されており、不可能なのです。

ドラッグ&ドロップは、ユーザーの能動的な動作により起こるイベントです。つまり、ユーザーが自分で「このファイルをアップロードしよう」といった具合に操作した結果の行動です。これに対し、「ファイルのパスによるファイルアクセス」は、ユーザー不在であり、プログラムが自分で勝手にファイルにアクセスできることを意味します。両者は全く違います。

>その回避法として、FileAPIによって
>htmlのinput要素かドラッグアンドドロップを用いて
>ローカルファイルを読み込めることが分かりました。

>上記の方法だとinputからフォルダをたどってファイルを選択するので
>原理的には可能なような気がするのですが・・・・

根本的な部分で勘違いをされている気がします。ドラッグ&ドロップで渡されるのはファイルのパスなどではありません。これはFileListオブジェクトという専用のオブジェクトで、その中に個々のファイルに関するFileオブジェクトが保管されています...続きを読む

QjavascriptでクライアントにCSVを出力する

質問の通りですが可能でしょうか?
やろうとしていることは
ブラウザにはクエリ結果を表示しています
例えば社員別取引先別月別売上額という一覧を表示させているとします
表示は
社員 取引先 売上月 売上金額
0001 AK0012 H18/07 123,456
0001 AK0012 h18/06  0
.....
というようになっています。各項目は違う「箱」に入っています
この表示されているものをクライアント側の記述でCSV出力したいです
htmlの表示テーブル内容から書き出しても、クエリの結果セットをhtml変数として格納してそこから書き出してもいいです。
宜しくお願いします

Aベストアンサー

CSV出力というのは、

「クライアントのハードディスクに勝手にファイルを保存させる」

行為ですか??

そんなことは絶対不可能です。

まぁ、MIMEタイプを、text/csvとかなんかにすればいいかもしれませんが。

Q