1

私は PHP Web サイトを持っていて、いくつかのデータを Excel ファイルに書き込んでいます。私のExcelファイルはボタンでダウンロードできます。ウィンドウまたはダウンロード マネージャー (構成されている場合) が開きます。これまでのところ、すべて問題ありません。ここで、このファイルをクライアントのデフォルト プリンターに自動的に送信したいと考えています。ユーザーが印刷をクリックすると、Web ページは「EXCEL FILE」をプリンターに送信する必要があります。JavaScript の「window.print()」関数とは異なります。

javascript または AJAX でこれを行う方法はありますか? デフォルトのプリンタに送信するために、クライアントは Excel ファイルをダウンロードする必要がありますか? 「src = bla_bla.xls」で非表示の「iframe」を使用しようとしましたが、自動的にダウンロード ウィンドウが開きます。

簡単に言えば、サーバー上で準備されたこのExcelファイルをクライアントのデフォルト プリンターに送信し、印刷オプション ウィンドウを開く必要があります。

4

2 に答える 2

1

ActiveX のセキュリティ障害で発生している問題は、Web ページに Excel を埋め込んでいるためだと思います。Excel の publish メソッドを使用してシートを HTML として発行することにより、ワークシートを印刷できるはずです。これを使用して、電子メールの HTML を作成します。

Dim rngeTableRange As Range
Dim lsTableFileName As String

lsTableFileName = <filepath and name for HTML output as string>
Set rngeTableRange = ActiveSheet.UsedRange

ActiveWorkbook.PublishObjects.Add(xlSourceRange, lsTableFileName, _
rngeTableRange.Parent.Name, rngeTableRange.Address, xlHtmlStatic).Publish True

印刷物をスプレッドシートのように見せたい場合は、ワークシートを公開する前に罫線を追加できます。次の VBA コードは、各セルの周りに境界線を配置します。

With ActiveSheet.UsedRange.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With
With ActiveSheet.UsedRange.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With
With ActiveSheet.UsedRange.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With
With ActiveSheet.UsedRange.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With
With ActiveSheet.UsedRange.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With
With ActiveSheet.UsedRange.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
    .Weight = xlThin
End With

結果は、セキュリティ警告につながらないスプレッドシートの HTML 画像である必要があり、印刷可能であると思います。

于 2012-09-22T09:40:18.523 に答える
0

これを行うには、javascript や vb などのクライアント側のスクリプト言語が必要です。php はサーバー側であり、クライアントのプリンターについて何も知りません..

于 2012-08-28T09:12:17.237 に答える