jspとjavaBeansを使用しています。
顧客情報をDBから検索して明細を画面出力し帳票印刷する
ために、データをCSVファイルへ出力したいのですが、
どうやってCSVファイルへ出力するのでしょうか?
ごく簡単な形式でいいので教えて下さい。

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

A 回答 (1件)

CSVの形式を知っていれば、あとはファイル出力で


問題はないはずですよ。
#カンマ区切りとかタブ区切りとか・・・

ではでは☆
    • good
    • 0
この回答へのお礼

自分で出力データをカンマ編集し、ファイル出力する。
ということで宜しいのでしょうか?
とりあえず、その方向でやってみます。
ありがとうございます。

お礼日時:2001/05/23 15:29

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

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

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

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

Q大量のCSVファイルをExcel形式に変換する

お世話になります。
大量のCSV(.csvファイルをExcel(.xls)ファイルに変換したい
と考えております。
リネームソフトを使って、(.csv)⇒(.xls)の一括変換を
したところ、拡張子は確かに.xlsに変換されたのですが、
中身はCSVのままとなっておりました。
(↑ファイル名とシート名が同期を取っているので)

このCSVを確実にエクセル形式へと変換したいのですが、
どなた様かいいお考えをお持ちでしたら教えてください。
ググってみたところ、そういったアドインがあるのですが、
できれば費用をかけずに行いたいです…。

Aベストアンサー

こんにちは。

すでに、マクロが1つ出ているようですが、私も作ってみました。

これは、ファイルをマルチセレクトして、そのファイル群を、Excelのマクロにより、一気に、CSV から XLS(Excel標準フォーマット)変換するマクロです。出来上がったら、Explorer 等で、確認してみてください。

>アドインがあるのですが、
私の個人的な意見ですが、この程度のものは、アドイン化すべきものではありませんから、よほど付加価値をつけないと公開用のアドインにはなりませんが、一般的にみて、アマチュアの作ったアドインは、押しなべて、あまり出来の良いものが少ないように思います。ですから、なるべく、一般のマクロで解決するように望みます。


'---------------------------------------------------

'<標準モジュール>
Sub CSV2XLS()
  'CSV を XLS に変換するマクロ
  Dim myArray() As String
  Dim FileName As Variant
  Dim fn As Variant
  Dim xlFileName As String
  Dim xlFileBaseName As String
  Dim TextLine As String
  Dim FileNo As Integer
  Dim i As Long
  Dim k As Long
  '基本となるフォルダ
  'BASE_DIR=""なら、マクロのあるブックと同じ場所のフォルダ
  Const BASE_DIR As String = ""
  If BASE_DIR <> "" Then
   ChDir BASE_DIR
   Else
   ChDir ThisWorkbook.Path
  End If
  FileName = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv", MultiSelect:=True)
  If VarType(FileName) = vbBoolean Then
   Exit Sub
  End If
  Application.ScreenUpdating = False
  For Each fn In FileName
   On Error GoTo NextStatus
   With Workbooks.Open(fn)
     xlFileName = Mid$(fn, 1, InStrRev(fn, ".") - 1) & ".xls"
     Do
      k = k + 1 '同名の時枝番をつける
      If k > 3 Then Exit Do
      If Dir(xlFileName) = "" Then
        .SaveAs xlFileName
        xlFileBaseName = Mid$(xlFileName, InStrRev(xlFileName, "\") + 1)
        Workbooks(xlFileBaseName).Close False
        k = 0
        Exit Do
        Else
        xlFileName = Mid$(fn, 1, InStrRev(fn, ".") - 1) & "_" & CStr(k) & ".xls"
      End If
     Loop
   End With
NextStatus:
  Next fn
  Application.ScreenUpdating = True
  MsgBox "終了しました。",64
End Sub

'---------------------------------------------------

こんにちは。

すでに、マクロが1つ出ているようですが、私も作ってみました。

これは、ファイルをマルチセレクトして、そのファイル群を、Excelのマクロにより、一気に、CSV から XLS(Excel標準フォーマット)変換するマクロです。出来上がったら、Explorer 等で、確認してみてください。

>アドインがあるのですが、
私の個人的な意見ですが、この程度のものは、アドイン化すべきものではありませんから、よほど付加価値をつけないと公開用のアドインにはなりませんが、一般的にみて、アマチュアの...続きを読む

QJSP/Servlet DBからデータを読み込み、CSV形式でダウンロードさせる・・・・

まず、あるボタンをおすと、Servletに飛ばして、そこでDBから特定のデータを読み込んで、読み込んだデータをカンマ区切りにして、ダウンロードさせます。
そして、ダウンロード直後にそのファイルを開かせないで、ダウンロードした人が任意の場所にファイルを保存させたいのです。 

ダウンロード自体はできているのですが、どうしてもダウンロード直後にエクセルファイルでひらいてしまい、任意の場所に保存させることができません。Officeの入っていないPCなら任意の場所に保存させられるようなのですが・・・・。

解決案をお待ちしております。

Aベストアンサー

resp.setHeader("Content-Disposition", "attachment; filename=\"tets.csv\"");

Servlet でこの一行を入れてみてはどうですか?
JSPはこの場合、関係ないですよね?
多分、attachment; が開かない様にしてくれたかと思うんですが。。。

適当です。間違っていたらすみません。

QエクセルデータからCSVファイルへの変換について

現在エクセルファイルにあるデータをCSVファイルへ変換する作業(エクセルでデータを作成して、保存時にCSVファイルを選択)をしているのですが、以下の例の場合うまく変換ができません・・・。
基本的な質問かもしれませんがどなたかご存知でしたら教えていただけると助かります。
よろしくお願いします。

【例】
        (エクセル) ⇒  (CSV)

うまくいく   12345     12345

うまくいかない 01234     1234


上記のようにエクセル上は文字列で管理されている
ケースだとCSVファイルに変換した時数列に変換
され、上記例のうまくいかないケースのように
頭に0がある場合CSVだと0が消えてしまいます。

よろしくお願いします。

Aベストアンサー

> CSVファイルに変換した時数列に変換

ちがいます。
いったんCSVで保存したものをエクセルで開いたときにそうなるのです。
CSVをエクセルでそのまま開かず、メニューの「データ」、「外部データの取り込み」、「すべてのファイル」、で取り込み、書式で文字列を選べばOKです。
あるいはCSVを拡張子を.TXTにしてテキストで取り込んでもOK

Q入力フォーム(JSP)にDB検索条件を入力し、データがなかった場合入力した値を残したままJSPに戻る方法を教えてください。

基本的にはタイトルの質問なんですが、具体的な書き方がわかりません。
今作成しているのが
TOP画面(JSP)
・入力フォームに検索条件

Servlet
・入力された条件でDB検索
 何か検索されれば次画面へ遷移
 何も検索されなければTOP画面へ戻る
というものですが、

public class LoginCheck1 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{

response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();

String user = request.getParameter("user");
String pass = request.getParameter("pass");

HttpSession session = request.getSession(true);

boolean check = authUser(user, pass);
if (check){
/* 認証済みにセット */
session.setAttribute("login", "OK");

/* 本来のアクセス先へ飛ばす */
String target = (String)session.getAttribute("target");
response.sendRedirect(target);
}else{
/* 認証に失敗したら、ログイン画面に戻す */
session.setAttribute("status", "Not Auth");
response.sendRedirect("/auth/Login");
}
}

protected boolean authUser(String user, String pass){
/* 取りあえずユーザー名とパスワードが入力されていれば認証する */
if (user == null || user.length() == 0 || pass == null || pass.length() == 0){
return false;
}

return true;
}
}

サーブレットはこんな感じで書いてるんですが、
response.sendRedirect("/auth/Login");
の部分が悪いんでしょうか?

基本的にはタイトルの質問なんですが、具体的な書き方がわかりません。
今作成しているのが
TOP画面(JSP)
・入力フォームに検索条件

Servlet
・入力された条件でDB検索
 何か検索されれば次画面へ遷移
 何も検索されなければTOP画面へ戻る
というものですが、

public class LoginCheck1 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{

response.setContentType("text/html; charset...続きを読む

Aベストアンサー

HttpServletRequestクラス、HttpSessionクラスのsetAttribute、getAttributeメソッドです。
詳細はJavaDocを見て下さい。

QCSVファイルをEXCELに変換の自動化作業

CSVファイルをEXCELに変換の自動化作業
{CSVファイルをEXCELに変換するため、
excel  ツールバーよりデータ(D)→外部データの取り込み(D)→テキストファイルのインポート→ファイルの種類変更→全てのファイル→○○.csvのファイル指定→“,”の区切り選択、、ウィザードに従って変更し次へで進む→A1が指定されるのでそのまま完了→CSVがEXCELファイルに変換された。
参照したabc1.csvの名前に対して新しいabc1.xlsとなずけて登録する。これらの作業をMYドキュメントのhenkan ホルダーに入っているCSVファイルに同様に作業して同じくhenkan ホルダーに入れる。}
上記の{ }内の作業を何か,excelのVBAのマクロのようなもので実行することはできませんか。
やり方を教えてください。

Aベストアンサー

もともと、CSVとはカンマ区切りのはずですから、そうではないということなら、このコードは、違っています。こういう質問系掲示板は、質問者が分らない部分をお助けするような形で出来上がるものだと思いますので、回答者の回答を最初から否定するような発言は控えていだきたいと思いました。なお、フォルダーの中を一気に変換してしまうようなコードは、必ず変換後の様子を確認してからでなくてはなりませんので、それを確認していただくつもりでした。

私自身は、ここのカテゴリで、私は、一ゲンではありませんので、後々のためにコードを掲示しておきます。以下は、私が考えていたコードであって、その処理後の状態を保証するものではありません。

'<標準モジュール推奨>
Sub DirectryCSV2XLS()
  Dim myCSVFnames() As String
  Dim myCSVFname As String
  Dim xlFileName As String
  Dim i As Long
  Dim j As Long
  Dim n As Variant
  Dim msg As String
'=====================================
  '以下 フォルダー要設定
  Const MY_FOLDER As String = ""C:\Documents and Settings\<User>\My Documents\"
'=====================================
  If Left$(MY_FOLDER, 1) <> "\" Then MsgBox "フォルダーの設定の最後は、「\」が必要です。": Exit Sub
  If Dir(MY_FOLDER, vbDirectory) = "" Then _
   MsgBox "そのフォルダーは存在しません。", vbCritical: Exit Sub
 
  myCSVFname = Dir(MY_FOLDER & "*.csv")
  Do While myCSVFname <> ""
   ReDim Preserve myCSVFnames(i)
   myCSVFnames(i) = myCSVFname
   i = i + 1
   myCSVFname = Dir()
  Loop
  If i = 0 Then MsgBox MY_FOLDER & " には、CSVファイルが存在しません。", vbCritical: Exit Sub
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  For Each n In myCSVFnames
   xlFileName = Mid$(n, 1, InStrRev(n, ".csv")) & ".xls"
   If Dir(MY_FOLDER & "\" & xlFileName) = "" Then
     With Workbooks.Open(MY_FOLDER & "\" & n, Format:=2)
      .SaveAs MY_FOLDER & xlFileName
      Workbooks(xlFileName).Close False
      j = j + 1
     End With
   End If
  Next n
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
  If i <> j Then msg = "既に" & CStr(i - j) & "個のCSV ファイルは、XLSに変換されています。"
  MsgBox i & "個のCSVの内、" & j & "個のファイルをXLSに変換しました。" & vbCrLf & msg
End Sub

もともと、CSVとはカンマ区切りのはずですから、そうではないということなら、このコードは、違っています。こういう質問系掲示板は、質問者が分らない部分をお助けするような形で出来上がるものだと思いますので、回答者の回答を最初から否定するような発言は控えていだきたいと思いました。なお、フォルダーの中を一気に変換してしまうようなコードは、必ず変換後の様子を確認してからでなくてはなりませんので、それを確認していただくつもりでした。

私自身は、ここのカテゴリで、私は、一ゲンではありませ...続きを読む

Qデータベース、jsp、servlet、JavaBeans・・

データベース、jsp、servlet、JavaBeans・・
授業で勉強しはじめた者です。

そもそも、データベースの概念がわかりません。データベースには沢山のデーターがあって、
それがテーブルになっている。それをsqlを使って書き換えることができる。
でも、元のデータは書き換えることはできない。
デスクトップに表示されるのは、命令にたいする処理であって元はそのままになっている。
と言うことは、例えばデーターベースという宇宙があるとして、その中にデータが星のように散らばっているのでしょうか?
そして、元のデータを書き換えるにはどうすればいいのでしょうか?
CELECT文などで書き換えられたデータはその時だけ?
よくわかりません。自分の勉強不足だと承知の上どなたかご回答よろしくお願いいたします。

Aベストアンサー

データベースを概念的に言うと・・・

図書館を想像してください。
図書館の建物が「データベース」です。
図書館内にはたくさんの本棚がありますよね。その本棚が「テーブル」です。
本棚に入っている1冊1冊の本が「データ」です。
本棚の本を取り出して読むことが「SELECT」です。
本棚に新しい本を追加することが「INSERT」です。
本棚の本を取り替えることが「UPDATE」です。
本棚から本を抜き取ることが「DELETE」です。

イメージがわくでしょうか?

QCSVをExcelに変換したい

お世話になります。

CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。

今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。

なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。

もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。

ご教授の程、宜しくお願い致します。

Aベストアンサー

>Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。

毎回同じCSVのフォーマットだったら
(項目数やデータ型など)
一度インポートウィザードで進めて行って
設定ボタンから定義を保存し
次回からはその定義名を使用してインポートしては?
VBAならDocmd.transferText のヘルプにあるSpecificationNameに定義名を入れます。
・・・じゃダメかいな?

>インポートする前準備としていったんExcelに変換したい
CSVファイルを直接開くとExcelのお節介機能で
電話番号などの前ゼロがなくなったり、ハイフン付きのデータが日付と解釈されたり・・・
ということががあるので、拡張子CSVをTxtに変えてから
Excelで開こうとするとウィザードが立ち上がって・・・と出来ますが
結局のところ二度手間です。

ご参考まで。

QJSP-Servlet-JavaBeansを使った場合のデータベースアクセスについて

JSP-Servlet-JavaBeansで開発するときに、
業務ロジックはModelであるJavaBeansの中で作成すると
思います。

様々なサンプルを見ると、そのJavaBeansの中で
データベースへのコネクションを作成し、SQL文を実行して
値を取得しています。(DBへの接続文字列や接続ユーザ、パスワード等も固定になっています)

しかし、DBへの接続文字列(特にサーバ名)や
接続ユーザ・パスワードなどは、普通Servlet初期パラメータから取得して設定するべきだと思います。

Servletだけで開発しているときは、
DBManagerのようなクラスを作成し、コンストラクタの引数に接続文字列等を渡していたのですが、
JavaBeansの場合はどうなるのでしょう?
(同じように引数付きのコンストラクタを作成するのでしょうか??)

また、今まではServletのini()で使ってコネクションをプール実現していたのですが、JSP-Servlet-JavaBeansを使うと、どのように処理を分ければよいのでしょうか?

長文で大変申し訳ありませんが、ぜひ良きアドバイスを
お願いします。

JSP-Servlet-JavaBeansで開発するときに、
業務ロジックはModelであるJavaBeansの中で作成すると
思います。

様々なサンプルを見ると、そのJavaBeansの中で
データベースへのコネクションを作成し、SQL文を実行して
値を取得しています。(DBへの接続文字列や接続ユーザ、パスワード等も固定になっています)

しかし、DBへの接続文字列(特にサーバ名)や
接続ユーザ・パスワードなどは、普通Servlet初期パラメータから取得して設定するべきだと思います。

Servletだけで開発しているときは、
DBMa...続きを読む

Aベストアンサー

これまでと同じようにコネクションプーリングを実装すればいいので
はないでしょうか?ただ、そこから取得したコネクションをJavaBeans
に渡す仕組みを考える必要があると思います。

ビジネスロジックを実装するJavaBeansのメソッドにコネクションを
パラメータとして渡したり、コネクションのフィールドを用意すれば
いいんじゃないでしょうか?

おそらくAPサーバは使用せず、コネクションプーリングを作り
こんでいると思います。私はAPサーバを使用しないケースは
経験していないのですが、Servletのinit()でコネクションを
プールするというのは初めて聞きましたし興味があります。
問題はないのかどうかという点も気になりますが。

QCSV形式に変換

プログラミング(C言語)で、ファイルの内容をCSV形式に変換し、指定した出力ファイルに出力するプログラムを作成せよ。という課題がありましたが、
ファイルの内容をCSV形式に変換
がわかりません。どのようなプログラムをかいたらよいのでしょうか?

Aベストアンサー

#5です。
よく見たらフィールド内での入れ替えが居るようなので、
#5で書いたやり方ではできませんね。。。
#参考だしいいのかな。。。

読み込みを一行ずつにして、
中を入れ替えて・・・
という作業が必要になります。

QCSVファイルを , で句切って出力する

同じ質問になってしまってすみません。
困り度を2ではなく3にしたかったので再掲示してしまいました。
よろしくお願いいたします。

次のような課題が出たのですが教えていただきたく書き込みしました。
皆様のお力をお貸しください。


(1)適当なフォルダにファイルを用意する(ファイルにはCSV形式で文字列が書いてある)

(2)最初に文字列をキーボードから入力させる(文字列は半角で5文字まで、それ以外ならば繰り返し入力させる)
※ 指定したファイルがない場合は堤外を出力(try,catch)

(3)フォルダのファイル読み込み、(2)で入力した文字列が含まれているCSVのカラムをファイルに出力(ファイルは新規作成




public class Match {
public boolean matchString (String[] args) {
// マッチング対象の文字列です。
String str = "​http://iwamode.net/index.html";//​

Pattern p = Pattern.compile("^https?://"); // 正規表現のコンパイル
Matcher m = p.matcher(str); // 正規表現エンジンの生成
if (m.find()) { // java.util.regex.Matcher#find()メソッドは部分一致するかを判断します。
System.out.println("「http://」または「https://」から始まる文字列です。");
} else {
System.out.println("「http://」または「https://」から始まる文字列ではありません。");
}

Pattern p2 = Pattern.compile("\\.com");
Matcher m2 = p2.matcher(str);
if (m2.find()) {
return true;
}
return false;
}
}

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

try{
File csv = new File("Kadai10.csv"); // CSVデータファイル


BufferedReader br = new BufferedReader(new FileReader(csv));
// 最終行まで読み込む
while (br.ready()) {


String line = br.readLine();
// 1行をデータの要素に分割
StringTokenizer st = new StringTokenizer(line, ",");
while (st.hasMoreTokens()) {
// 1行の各要素を区切りで表示
System.out.println(st.nextToken() + ",");
}
System.out.println();
}
br.close();

} catch (FileNotFoundException e) {
// Fileオブジェクト生成時の例外捕捉
e.printStackTrace();
} catch (IOException e) {
// BufferedReaderオブジェクトのクローズ時の例外捕捉
e.printStackTrace();
}

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


System.out.println("半角5文字までの文字列を入力してください");
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String str = r.readLine();

if(str.length() <= 5 && str.matches("[0-9a-zA-Z]")) {




上記の3つの部分ソースを使いプログラムを完成させたいんですがどのようにしたらいいでしょうか?

同じ質問になってしまってすみません。
困り度を2ではなく3にしたかったので再掲示してしまいました。
よろしくお願いいたします。

次のような課題が出たのですが教えていただきたく書き込みしました。
皆様のお力をお貸しください。


(1)適当なフォルダにファイルを用意する(ファイルにはCSV形式で文字列が書いてある)

(2)最初に文字列をキーボードから入力させる(文字列は半角で5文字まで、それ以外ならば繰り返し入力させる)
※ 指定したファイルがない場合は堤外を出力(try,catch)

...続きを読む

Aベストアンサー

上記のようなソースコードを先に見てしまうと混乱するでしょう。

・標準入力から文字列を取得する
・特定のファイルを1行ずつ読み込む
・読み込んだ1行を指定文字で分割する
・文字列のから特定の文字列を検索する
・新規作成したファイルに文字列を出力する

これらをすべてメソッド単位に実装していけばよいと思います。
その中でわからないことがあれば再度質問してください。

なお、以下の点が曖昧です。
・CSVのファイル仕様
・「カラム」の指す内容
・Matchクラスの意味(正規表現を使用したいということだけ?)


人気Q&Aランキング