質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

5410閲覧

ExcelファイルからPDFファイルへの出力。

Ryo8

総合スコア7

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

ウェブアプリケーション

ウェブアプリケーションとは、ウェブ上でアクセスされるアプリケーションのことを呼びます。この場合におけるウェブとは、インターネットやイントラネット上を意味します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/06/22 02:15

編集2018/06/22 04:08

環境

以下の環境でウェブアプリを開発しています。

クライアントサイド:Javascript
サーバーサイド : node.js

前提・実現したいこと

ブラウザ上でエクセルファイル(.xlsx)を読み込み、そのエクセルファイルのフォーマットに則った帳簿のようなデータをプログラム上で編集後PDFとして出力する機能の実装を検討しています。
しかし、この条件に適したライブラリ・コンポーネントを探しても見つからなかったので、良いソリューションをご存知でしたら教えていただけないでしょうか。ライブラリは有料・無料問いません。

検討したこと

  1. Ignite UIコンポーネント

エクセルファイルをインポートし、ウェブアプリ内でテーブルとして読み込むことは可能。しかし、PDFとしてダウンロードは行えず。
現在PDFとして出力も開発中とのことでしたが、リリース時期は未定とのこと。

  1. Wijmoライブラリ

xlsxファイルの読み込みは可能だが、表形式でしか読み込めず、柔軟なフォーマットデザインには対応せず。
2. makePDFなどのPDF出力ライブラリ
PDF出力は可能。しかし、エクセルファイルを読み込み、それをPDF出力できるようにするには自力でコーディングする必要あり。
3. 印刷設定からPDF出力(cubePDFなど)
都度プリンター選択する必要があるなどの理由から断念。
4. サーバー側で編集を行い、Excelを利用しPDF出力
インポートしたエクセルファイルにexceljsなどのnpmパッケージで書き込みを行った後、Excelにコマンドを送りPDFに変換する。
しかし、以下の通りMicrosoft社は推奨していないようですが、検証で問題なければこの方法が現実的かと思い検討中です。
https://support.microsoft.com/ja-jp/help/257757/considerations-for-server-side-automation-of-office

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2018/06/22 02:33

エクセルから印刷したイメージのままpdfに出力するならクライアント側でpdf出力したものをアップロードするのが筋では?逆にエクセルからデータを抜いてpdfにするならエクセル、pdfのそれぞれをプログラムでインタフェースすればすむので別々に考えればすむような
Ryo8

2018/06/22 03:46 編集

xlsxファイル読み込み後、プログラム上で変更を加えます。流れとしては、以下の通りです。 1.フォーマットをデザインしたxlsxファイル読み込みテンプレートとして格納。 2.プログラム上で、そのテンプレート内のセルにテキストや表追加を行う。 3.PDF出力
guest

回答3

0

JavaScriptにはそんなに詳しくないですが、Javaで変換できる方法があって、いつも使用していますから、多分参考になるかもしれません、ここでシェアしようと思います。
まずはSpire.Excel for Javaという無料のコンポーネントをダウンロードする必要があります。コードは以下の通りです:

import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ConvertWorksheetToPdf { public static void main(String[] args) { //Workbookのインスタンスを作成してそれをロードする Workbook workbook = new Workbook(); workbook.loadFromFile("C:\Users\Administrator\Desktop\Sample.xlsx"); //変換時に幅に合うようにワークシートを設定する workbook.getConverterSetting().setSheetFitToWidth(true); //最初のWorksheetを取得する Worksheet worksheet = workbook.getWorksheets().get(0); //PDFに変換し、結果のドキュメントを指定されたパスに保存する worksheet.saveToPdf("output/WorksheetToPdf.pdf"); } }

もし参考になれば幸いです(笑)

投稿2021/11/26 06:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

  1. ネイティブアプリケーションでエクセル入力、PDF出力機能を作成する
  2. 同ネイティブアプリケーションでWebSocketサーバーを立ち上げる
  3. ブラウザからローカルホスト上のネイティブアプリケーションに、WebSocketで接続する

上記のように構成すれば、エクセルやPDFといった機能をネイティブアプリケーションに切り出すことができ、かつブラウザを通じてウェブアプリケーションと通信が行えます。

詳細はこちらをご参照ください。

投稿2018/06/22 04:28

tekka

総合スコア514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2018/06/22 02:42

euledge

総合スコア2404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryo8

2018/06/22 03:50

回答ありがとうございます。 Sheet.jsも以前試しましたが、このライブラリは文字データは読み込みますが、 枠線などのデザイン情報は読み込まないようなので、今回は使えなさそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問