• 締切済み

javaからexcelのパスワード設定をする

はじめまして。 いま、javaでエクセルファイル(読み取りパスワード設定)を作成する宿題を考えています。 条件は、アプリケーション動作はLinuxOS上で動作するものとし、WindowsOLEは利用できないという難題です。 poi等のフリーで実現したいのですが、有料ライブラリでも一時的にかかる費用ならばしょうがないと割り切っています。 今調べたエクセルを扱うJAVAのライブリは次のとおりの状況ですが、手詰まりの状況になってきました。WindowsのVBScriptでは実現できたのですが、Linuxサーバというのが味噌らしく・・ POI:NG JEXCEL:NG JXCELL:NG どなたかお知恵をかしていただけないでしょうか

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

noname#147388
noname#147388
回答No.1

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36664&forum=12 結構複雑な方法で POI にて設定できるらしい。

関連するQ&A

  • [JAVA]jarファイルへのパスの通し方について

    javaのPOIライブラリ(v3.0)をTOMCAT+JSPで利用していたのですが、 パージョンが古くxlsxに対応するためバージョンアップ(v3.10)を行いました。 その影響で旧バージョンで動作していたJSPが新バージョンで動作しなくなってしまいました。 そのため新しく制作するJSPのみ新バージョンのPOIを参照し、 過去のJSPでは旧バージョンのJSPを参照したいのですが可能でしょうか? JSPの新しく制作したJSPではimportで新しいライブラリが格納されるパスを指定すればよいのではないかと 思っているのですが、クラスパスの設定が悪いのか、「そんなクラスは存在しない」というエラーになってしまいます。 (クラスパスはカレントディレクトリも参照するように「.;」は設定されています) カレントディレクトリに参照したいPOIのjarを設置しても同じエラーになるので、 解決方法をご教授いただけますでしょうか? どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • linux上で「java + poi」の変わりになるもの

    linux上で、「java + poi」で作ったプログラムを毎日自動的に実行して結果をexcelファイルに出力する、ということをしています。 同じことを、java以外の言語を使って実現することは可能でしょうか? linuxではなくwindows上で行うとすれば、「様々な言語 + Win32OLE」で実現可能かと思いますが、あくまでも"linux上で"できないか?という質問です。 何かご存知の方がいらっしゃったら、ご回答よろしくお願いいたします。

  • Javaについて

    Javaについて 現在イントラネット内Win98SE機上でApache、PHP、MySQLの組合せとport80で、文字型データベースが動作しています。 画面デザインをいじろうとしてもHTML構文に阻まれて思うような画面構成が出来ません。 以前dBASEで出来ていた「画面分割表示と、ホップアップ表示をさせたい」を再現したいと思い、 そこでJavaを利用出来ればと考えました。 Javaと言われている物にはHTMLに埋め込まれるものと、プログラム的に単独で動くものの2種類がある。という理解でよろしいでしょうか 1.JavaプログラムとはJ2SDK_ver..である? 2.TomcatとApacheとの関係、一寸古い本では組み合わせて使えるようにも解説されているが、 最新状況は単独で可能、 Apacheにしたい?(深い意味はない) 4.Eclipse(開発統合環境)これはあえて組み込まなくても良いものでしょうか、市販エデイタは当然利用しています。 (コンパイルの意味、外に出す気はない) 5.今回はWinXP機にセットしようとしています。Java解説書ではport8080が開くようになっています。ルータに対してport80とport8080を二つあけることに問題はありませんか 6.MySQLを利用するための最適な組合せを教えてください 6.最終的にはLINUXマシンでとも思っていますが、手持ちOSはFederaCore3とRedHat9どちらがベターか、またはこれがいいが有れば 後解らない言葉->Jakarta

  • Javaでのメンバー変数へのアクセスの仕組み

    次のような構造をしたjavaのライブラリを使用しています。(構造だけ抜き出して書いています) [Hoge.java] public interface Hoge { ; } [Foo.java] public class Foo implements Hoge { public int m1; public Foo() { m1 = 1; } } [Bar.java] public class Bar extends Foo { public Hoge hoge; } これを、jythonから以下のように呼び出すと、問題なく動作します。 import Hoge, Foo, Bar bar = Bar() bar.hoge = Foo() print bar.hoge.m1 # 1が表示される 一方、javaで同じように書こうとすると、エラーとなります。 public class Main { public static void main(String[] args) { Bar bar = new Bar(); bar.hoge = new Foo(); System.out.println(bar.hoge.m1); // エラー } } jythonと同様のことをjavaで実現する方法はあるのでしょうか? Javaの経験はまだ日が浅く、根本的な部分で理解できていない部分があるのかもしれませんが、ご教授いただければと思います。

    • ベストアンサー
    • Java
  • エクセルを使用しての印刷方法についてのご質問

    実現したいことは、htmlファイルの実行ボタンをクリックすると、データベースからデータを取得してそのデータをプリント出力したいということにつきます。そのためにMSエクセルを使用してデータを貼り付けプリントすることにしました。またプリント機能には、プレビューの機能も 付加したいということです。 次のような方法を考えています ひとつは、サーブレットで動的に生成したExcelデータを ブラウザ側にダウンロードし、それをブラウザ側で起動したExcelに張り付ける方法 もうひとつは、サーブレット内の処理でエクセルのアプリケーションの起動から、セルへのデータのセット、 印刷処理、エクセルの終了処理に及ぶVBSCRIPTを作成して、それら全VBSCRIPTを文字列としてブラウザ側に返してHTMLファイルの中で、VBSCRIPTを実行させる方法です これら2つの実現方法(コーディングの仕方)がわからなくて困っています。 何か良いサンプルコードや別の方法などございましたら よろしくお願いいたします。 (実現方法はどちらか一方でかまいませんし、別の方法でもかまいません) 現在の進捗状況は、HTMLの実行ボタンをクリック して、サーブレットを起動し、サーブレットの処理で jdbc経由でデータベースにアクセスし、SQLを投げてデータを取得します。 これらの処理以降でエクセルへのデータの貼り付けを行いたいのですが、ここからどのようにコーディングすれば よいのかわかりません。 何卒よろしくお願いいたします。 (データベースからデータを取得するところまではできています) サーブレットの起動方法は、HTMLファイルのソースで <FORM method="post" action="http://localhost/servlet/smpl"> の行を挿入しています。 環境 サーバー  WINDOWS NT SERVER 4.0 + IIS 4.0          + JRun 3.0 クライアント WINDOWS 95/98 +IE4.0~5.0 

  • JScriptでExcelの全シートにアクセスする方法

    JScriptからWSHを使って、Excelファイル内の全ワークシートにアクセスしようと試みています。たとえば、 var excel=WScript.CreateObject("Excel.Application"); excel.Visible=false; book=excel.Application.Workbooks.Open(ファイル名); for(var sheet in book.Sheets) { WScript.Echo(sheet.Name); } と書いてみましたが、forループに入りません。 VBScriptでは上記のようなコードでOKらしいのですが、JScriptではNGなのでしょうか? また、Office製品のActiveXオブジェクト(というのかどうかよくわからないのですが)を詳しく紹介しているサイトや書籍などをご存知でしたら教えてください。 MicrosoftのサイトにはTIPS程度しか載っていないので、独習できない状況です。

  • 画像イメージの背景を透過にすることができません。

    GDライブラリを使用して、PHPでグラフ画像を生成させたいのですが、 環境によって、透過の関数がうまく動作しません。 $color = imagecolorclosest(元の画像, 255, 255, 255); ImageColorTransparent(元の画像, $color); <OKな環境> ・Linux ・PHP4.2.2 <NGな環境> ・solaris ・PHP4.2.4-dev どなたかご教授ください、よろしくお願いします。

    • 締切済み
    • PHP
  • CreateObject("Excel.Application")でVBScript実行時エラー

    ActiveServerPage(サーバーサイド)でExcelを起動させ データベース(SQLServer)より取得したデータをExcelに貼付け 保存させたいのですが。 2台のPCでは正常に動作するものの、もう1台のPCで実行すると 以下エラーが発生します。 ---------------------------------------------- Microsoft VBScript 実行時エラー エラー'800a01ad' ActiveXコンポーネントはオブジェクトを作成できません。 :'Excel.Application' /××/××/××.asp 行705 ---------------------------------------------- ↓705行目 <% .. set ○○ = CreateObject("Excel.Application") .. %> Microsoftサポート技術情報の [IIS]ASPがVBScript実行時エラー"800a01ad"を返す http://support.microsoft.com/default.aspx?scid=kb;ja;JP194801 レジストリを確認しましたが、3台とも同じ設定でした。 またExcelファイルのアクセス権をEveryOneフルコントロールに設定し 実行してみましたが状況が変わらず・・・。 クライアントサイドのVBScriptでExcelを起動させて 見た所、問題なく起動終了しました。 IISの問題なのでしょうか? ちなみに環境はWinNT4.0、IIS4.0(SP6)、Excel2000(SR-1)です。 同様のケースで過去に解決された方、または良い案がある方。ご教授下さい。

  • 実行ファイルの呼び出し

    linuxでシステムの統合をしたいと考えております。 現在の状況はそれぞれのプログラムを別々の端末で実行し、それをTCP/IPで接続して連動して動作するようなシステムになっているのですが、一つのプログラムからそれぞれの実行ファイルを呼び出して使用するにはどのようにすればいいのでしょうか。 自分が調べたところによりますと実行ファイルを共有ライブラリ(.so)にしてそれを呼び出して使うという方法があり、単純な方法はわかったのですが(例えば"Hello World"と表示させる共有ライブラリを作り、それをmainで呼び出す)、引数や返り値があるときはときはどのように使えばいいのでしょうか? また、共有ライブラリ以外で実行ファイルを呼び出す方法はありますか? 開発環境はRed hat linux 8.0です。 ご教授のほどよろしくお願いします。

  • POIでExcelに時刻(h:mm)の値を出力したい

    お世話になっております。 現在JAVA勉強という名目でEXCELで運用している社内勤務表をWebから入力できるシステムを開発しています。(好みによりExcel直接編集とWebによる編集どちらかを選べる) 現状の問題としてはPOIライブラリにより勤務開始時間、勤務終了時間の値をExcelのセルに出力するところで h:mm (例えば[10:30])という値が出力できないことです。(既存の書式に合わせた値の出力ができない) 文字列(先頭に'が付く)やシリアル値として出力することは可能ですが、ただ単純に[10:30]と出力することができません。 【実現したいExcelの出力結果】(JavaのString文字列"10:30"を元に出力) 値:[10:30] 表示:[10:30] ※Excelのセルは表示と値が異なる場合があるが両方共 h:mm 形式で出力したい。 【試行錯誤した出力結果】 (1)文字列として出力する 値:['10:30] 表示:[10:30] ※表示は期待通りだが値の先頭に'がついてしまいうまくいかない。 ※出力した値は他のセルの計算式で参照するので'がついてるのは問題あり。 (2)Date型で出力し書式を h:mm 形式にする 値:[613666:30:00] 表示:[10:30] ※表示は期待通りだが値がシリアル値になってしまいうまくいかない。 ※ただし m/d/yy h:mm 形式を出力するとシリアル値にならない。(何故だろう) ※シリアル値ではExcel直接編集の際に人が編集しにくい値なので問題。 実際Excelでは値も表示も[10:30]というセルはキーボード入力で簡単に作成できるのでPOIで出力できないとはとても思えません。 どうすれば[10:30]という値が出力できるか教えていただけないでしょうか。 よろしくお願いいたします。 ----------------------------------------------------------------------- 【使用しているPOI】 バージョン:3.2 ダウンロードしたファイル:poi-bin-3.2-FINAL-20081019.zip ----------------------------------------------------------------------- 【試行錯誤したプログラム】 public class CellOutput{ public static void main(String[] args){ HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet(); HSSFRow row = sheet.createRow(1); HSSFCellStyle style = workbook.createCellStyle(); style.setDataFormat(HSSFDataFormat.getBuiltinFormat("h:mm")); try { // テスト1(文字列で出力) HSSFCell cell1 = row.createCell((short)0); cell1.setCellValue("10:30"); // テスト2(Dateで出力 書式設定無) HSSFCell cell2 = row.createCell((short)1); SimpleDateFormat hhmmFormat = new SimpleDateFormat("h:mm"); Date time = hhmmFormat.parse("10:30"); cell2.setCellValue(time); // テスト3(Dateで出力 書式設定有) HSSFCell cell3 = row.createCell((short)2); cell3.setCellValue(time); cell3.setCellStyle(style); // テスト4(Dateで出力 m/d/yy h:mm形式) HSSFCell cell4 = row.createCell((short)3); HSSFCellStyle style2 = workbook.createCellStyle(); style2.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm")); cell4.setCellValue(time); cell4.setCellStyle(style2); } catch(Exception e){ } 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()); } } } } -----------------------------------------------------------------------

    • ベストアンサー
    • Java

専門家に質問してみよう