• ベストアンサー

Excel(Excel2002を利用しています)の拡張子CSVのファイ

Excel(Excel2002を利用しています)の拡張子CSVのファイルを、 MySQLのテーブルへ JavaサーブレットやJSP、JavaScript等で、 インポートするプログラミング方法を教えてください。 (もしくは参考になる、いずれかのWebサイトをご紹介いただくだけでも助かります) お世話になります。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.5

なるほど。 もしかして匿名ユーザ消してますか? その場合は、  getConnection() じゃなくて  getConnection("ユーザ名","パスワード") にしないとDBに接続できないんじゃなかったかと。 すみません、うろ覚えです。

hiroasa21
質問者

お礼

crossgate様 お世話になっております。 1週間ほど、別作業が優先で回ってきてしまい、 こちらの調査・対応作業が出来ずに、 お礼が遅れてすみませんでした。 このご回答通りに、試してみたところ、 すんなりDBに接続できました。 たびたびお手数をおかけいたしました。 本当に助かりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • crossgate
  • ベストアンサー率65% (78/119)
回答No.4

何かDBにつなぐときのユーザ名、パスワードがちゃんと指定できてないだけな気が。。。 こんな感じでgetConnectionしてますか? Connection con = DriverManager.getConnection("jdbc:mysql://localhost:ポート番号/xxxx", "ユーザ名", "パスワード");

hiroasa21
質問者

お礼

crossgate様 ご回答ありがとうございました。 また機会がございましたら、 宜しくお願い致します。

hiroasa21
質問者

補足

お世話になります。 現時点では、以下のように、DBに接続しております。 final Context context = new InitialContext(); final DataSource ds = (DataSource) context .lookup("java:comp/env/jdbc/ace"); conn = ds.getConnection(); stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); String strSql = ""; strSql = strSql + "LOAD DATA INFILE"; strSql = strSql + " '" + strUploadFile1 + "' "; strSql = strSql + " INTO TABLE TABLE_MOKUROKU"; strSql = strSql + " FIELDS TERMINATED BY ',' "; strSql = strSql + " IGNORE 1 LINES"; stmt.executeUpdate(strSql); 今日はそろそろ会社から自宅へ帰りますので、 明日、ご回答いただきました方法を、 実際にプログラムへ組み込んで試してみます。 たびたびお手数をおかけしておりますが、 おかげ様で、いろいろと動作確認を試すことが出来て、 本当に助かっております。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.3

システム例外が具体的にどんな例外なのか良く分からないですが。。。 (MySQLのバージョンとかスタックトレースとか貼り付けてくれると分かる「かも」しれないですが) 気になるのはこんなところです。 確認してみてください。 #2の参考URL(MySQL4.1)より抜粋 ---------------------------- セキュリティ上の理由から、サーバに存在するテキストファイルを読み取るときには、そのファイルがデータベースディレクトリに存在するか、または全ユーザがそのファイルを読み取り可能でなければなりません。また、サーバのファイルに対して LOAD DATA INFILE を使用するには、サーバホストでの FILE 権限が必要になります。 See 項4.3.7. 「MySQL が提供する権限」。 ---------------------------- ---------------------------- LINES 節を指定しない場合、デフォルトは次のように記述した場合と同じです。 LINES TERMINATED BY '\n' 注意: Winodows では行終端記号として 2 文字を使用しているため、テキストファイルを Windows システムで生成した場合は、通常、上の記述を LINES TERMINATED BY '\r\n' に変更する必要があります。wordpad などの一部のプログラムでは、行終端記号として \r を使用できます。 ---------------------------- ※ MySQL5.1も似たようなものです。 http://mysql.biz.net.id/doc/refman/5.1/ja/load-data.html

hiroasa21
質問者

お礼

crossgate様 ご回答ありがとうございました。 また機会がございましたら、 宜しくお願い致します。

hiroasa21
質問者

補足

たびたび、ご回答をいただき、 ありがとうございます。 File_privは”Y”で、 LINES節は、指定済でした。 (1)【MySQLのバージョン】      5.1.48 (2)【エラー時のスタックトレース】(あと1854文字しか入力出来ない為、at以下が同じ箇所は削除して省略) java.sql.SQLException: Access denied for user 'SYSMAI'@'localhost' (using password: YES) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) SQLError.createSQLException(SQLError.java:956) MysqlIO.checkErrorPacket(MysqlIO.java:3558) MysqlIO.checkErrorPacket(MysqlIO.java:3490) MysqlIO.sendCommand(MysqlIO.java:1959) MysqlIO.sqlQueryDirect(MysqlIO.java:2109) ConnectionImpl.execSQL(ConnectionImpl.java:2642) StatementImpl.executeUpdate(StatementImpl.java:1647) StatementImpl.executeUpdate(StatementImpl.java:1566) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228) at jp.co.sysmai.ace.UploadCSVFile.doPost(UploadCSVFile.java:347) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) (HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) StandardWrapperValve.invoke(StandardWrapperValve.java:233) StandardContextValve.invoke(StandardContextValve.java:191) StandardHostValve.invoke(StandardHostValve.java:128) .valves.ErrorReportValve.invoke(ErrorReportValve.java:102) StandardEngineValve.invoke(StandardEngineValve.java:109) .connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291) ChannelSocket.invoke(ChannelSocket.java:769) ChannelSocket.processConnection(ChannelSocket.java:698) ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) at java.lang.Thread.run(Thread.java:619) 以上になります。 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.2

サーバに無いと駄目です。 クライアントにあるならLOCALを付ければ良いです。 http://dev.mysql.com/doc/refman/4.1/ja/load-data.html

hiroasa21
質問者

お礼

crossgate様 ご回答ありがとうございました。 また機会がございましたら、 宜しくお願い致します。

hiroasa21
質問者

補足

crossgate様 お世話になっております。 ご回答ありがとうございます。 その後、サーバ上「 /opt/proj/ace/ad/123/578/ 」に、 以下のように「 KYOUIKU.csv 」ファイルを置いて、  (/opt/proj/ace/ad/123/578/KYOUIKU.csv) 以下のように実行致しましたが、 やはり、 システムエラーが発生してしまう状態です。 (1)【Javaサーブレット内】       Statement stmt = null; stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); String strSql = ""; strSql = strSql + "LOAD DATA INFILE"; strSql = strSql + " '" + strUploadFile1 + "' "; strSql = strSql + " INTO TABLE TABLE_MOKUROKU"; strSql = strSql + " FIELDS TERMINATED BY ',' "; strSql = strSql + " IGNORE 1 LINES"; stmt.executeUpdate(strSql); (2)【上記(1)で作成したstrSql文字列の値】 LOAD DATA INFILE '/opt/proj/ace/ad/123/578/KYOUIKU.csv' INTO TABLE TABLE_MOKUROKU FIELDS TERMINATED BY ',' IGNORE 1 LINES たびたび、お手数をおかけいたしますが、 もし、よろしかったら、 上記(1)、(2)をご覧頂きまして、 お気づきの点など、アドバイスいただけましたら幸いです。 以上、宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • crossgate
  • ベストアンサー率65% (78/119)
回答No.1

基本的にはタブ区切りのファイルをインポートするプログラムで、 CSVならこうしてね、っていうのは下の方に書いてます。

参考URL:
http://www.java-tips.org/other-api-tips/jdbc/import-data-from-txt-or-csv-files-into-mysql-database-t-3.html
hiroasa21
質問者

お礼

crossgate様 ご回答ありがとうございました。 また機会がございましたら、 宜しくお願い致します。

hiroasa21
質問者

補足

crossgate様 ご回答ありがとうございます。 もしよろしかったら、更に教えてください。 今回ご回答いただきました内容を、Javaサーブレットプログラム内に 組み込んでいるのですが、なぜかシステムエラーが解消されない状況です。 おそらく、 LOAD DATA INFILE の後の、 「filename」の指定の仕方が、私の方で間違っているように思うのですが、 ここには、ローカルPC内のフォルダ(WindowsXP)内においてある CSVファイルを指定するのは、間違いなのでしょうか? (サーバー内にCSVファイルを置いてから、指定する必要があるのでしょうか?) 以上、宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【Microsoft Excel】 .csv 以外のCSVファイルをExcelで開きたい!

    .csv 以外のCSVファイルをExcelで開きたいのですがどうしたらよいでしょうか? abcd.csvというExcelで問題なく開けるCSVファイルがあるとします。 これの拡張子を.xxx(又はその他、独自設定の拡張子)に変更して、Excelで開けるようにしようと思ったのです。 フォルダオプション>ファイルタイプ>新規(ボタン)」で「新しい拡張子の作成」ダイアログが開き、そこで ・ファイルの拡張子=.xxx ・関連付けられているファイル タイプ=Microsoft Excel CSV ファイル と設定して、abcd.xxxをダブルクリックでExcelが起動&ファイルオープンするまではいったのです。(アイコンも.csvファイルといっしょになりました。) しかし、 aaa,bbb ccc,ddd という内容のファイルが セルA1=aaa,bbb セルA2=ccc,ddd となり、csvファイルとして認識してくれていないみたいなのです。 ちなみに、元の.csvの場合にはちゃんと セルA1=aaa セルB1=bbb セルA2=ccc セルB2=ddd とExcelは表示してくれます。 どうにか上手い方法は無いものでしょうか! よろしくお願いいたします。

  • ServletからAccessのテーブルをCSV形式で出力の方法

    サーブレットからAccessのテーブルをCSVとして出力することは可能ですか? 参考になるサンプルやサイトなど教えて頂くと助かります。 JAVAに関してはまだ触り程度なのでよろしくお願いします

    • ベストアンサー
    • Java
  • CSVファイルをJSON形式に変換

    CSVファイルをJSON形式に変換するJAVAのプログラムの参考情報を探しています。 (JavaScriptのソースはいくつか見つかったのですが。。) なにか参考になるサイトがあるよ?とか こういうプログラミングしたらどう? などありましたら教えて頂けませんでしょうか? .

  • 改行のあるCSVファイルをExcelに読み込みたい

    CSVファイルをExcelにインポートしたいのですが CSVファイルのデータ内に改行が入っていたので、レイアウトが崩れて、 うまくExcelにインポートできない状態です。 改行を置き換えで取り除くと、すべて横並びになってしまいます。 1レコードは59項目と決まっているのですが、手作業で改行を入れるのは 数が多く難しそうです。 なんとかうまく取り込む方法はないでしょうか? プログラミングは全くわかっていない初心者ですが、 エクセルのVBAにコピペして実行することは可能です。。。 カテ違いだったらすみません><

  • CSVをExcelに変換したい

    お世話になります。 CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。 今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。 なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。 もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。 ご教授の程、宜しくお願い致します。

  • CSVからテーブルに書き出すときに条件をつけたい

    こんにちは! CSVファイルをPHPとHTMLタグを使ってWEBブラウザで表示しようとしています。 CSVデータを読み込んで、テーブルを表示し線の色や太さを変えるところまではできたのですが、 セルに格納されるデータを判断して、セルの背景色を指定したり文字に色を指定したりすることは可能でしょうか? それともJSPでJAVAにしたほうが容易に実現できるでしょうか? 実際にどのようなロジックか教えていただけたら嬉しいです。 当方PHPに関しては初めて一週間もたっていないほどの超初心者です。JSPに関しては仕事で作ったりしているので多少のことはわかります。 それではよろしくお願いいたします!

    • ベストアンサー
    • PHP
  • JAVAでHTML数値を参照する方法

    java(JSP,サーブレット)を始めたばかりで、よくわからなく お教えねがえないでしょうか java(JSP+HTML)からjava(JSP,サーブレット)には request.getParameter()でデータを参照することは 出来たのですが、 JSP(HTML+javascript)の構成の場合 HTMLのinput文(value)とjavascript 変数を <% JSP %>の中でどのように記述したらデータを参照出来る のでしょうか

    • ベストアンサー
    • Java
  • java JSP/サーブレット

    Javaの参考書をやったのですが(参考書:やさ○いJava)、これはアプレットと聞きました。アプレットは現場では殆ど使われないと聞き、JSP/サーブレットは現場で使うと聞いたのでJSP/サーブレットをやっています。 でも、構文が少し違います。 *********************************** 例えば、Javaなら表示するときには System.out.printlnでしたが、 JSP/サーブレットでは違う構文です。 また、Javaならファイルが一つしかありませんでした。(コンパイルするとclassファイルができる) JSP/サーブレットは、スーパークラスやサブクラスは 別のファイルになっています。 ************************************ JSP/サーブレットはプログラム言語なんですか? JSP/サーブレットの中にもJavaの構文があるんですが、先にも述べたようにJavaと違う構文も含まれています。 ちょっと戸惑っています。 しかも、JSP/サーブレットに関する参考書が本屋さんで殆ど見られないのです。 お勧めの参考書などあればいいのですが、 数が少ないためか見当たりません。 それで、とりあえづ「10日で覚○るJSP/サーブレット」という本を買ったのですが、9割がたJSPです。 1割がサーブレットです。 こうなってくると意味がわからなくなってきます。 現場ではサーブレットと聞いていたのに、そのサーブレットが1割しか載っていない。え!?どういうこと!?更にはJSPとサーブレットの書き方も少し違うような気が・・・・。 もう何が何かさっぱりわからなくなってきました。 結局何を勉強すれば良いのか? そもそも、JSPとは?サーブレットとは? ネットで調べはしたもののピンときません。 現場でJavaをやりたいのですが、独学方法というか、 アドバイスを宜しくお願いします。

    • ベストアンサー
    • Java
  • csvをExcelに変換したい

    CSVファイルをEXCELで開いたとき、表の列毎に意味をもった表示がされているのですが、 それを拡張子を単にcsvをxlsに書き直したものを開くとデータが”、”で区切られただけでいわゆる1列の形にごちゃごちゃデータが詰まった形の表示になってしまう。最初に開いた形でそのままxlsの形にしたいのですがどうすれば、 なおExcel2000を使用しています。

  • エクセルのマクロでIEを操作したい

    ExcelのマクロでIEを操作したいのですが、何か良い参考書やWebを ご存知の方いらっしゃいませんでしょうか? 三流君さんのWebはいつも参考にさせていただいており、 「Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応」 の書籍は持っています。Javaスクリプトを勉強する必要はありますでしょうか?