ASP と Excel を組み合わせてデータ テーブルとグラフのコードを生成し、必要な友人がそれを参照できるようにします。目次
1. 環境構築
2. Excel上のASPの基本操作
3. ASPはExcelを操作してデータテーブルを生成します
4. ASP は Excel を操作してグラフを生成します
5. サーバーサイド Excel ファイルの閲覧、ダウンロード、削除ソリューション
6. 付録
文章
1. 環境構築
サーバー側の環境構成については、参考資料から判断すると、Microsoft シリーズのすべての構成で問題ありません。
1. Win9x+PWS+Office
2. Win2000 Professional+PWS+Office
3. Win2000サーバー+IIS+Office
現時点で筆者がテストに成功した環境は後者2つである。 Office のバージョンに特別な要件はありません。クライアントの構成の不確実性と互換性の低さを考慮して、ダウンロード後にクライアントが正しく表示されないことを防ぐために、サーバー側の Office のバージョンを高くしすぎないようにすることをお勧めします。
サーバー側の環境構成に関するさらに 2 つの偶然の発見は次のとおりです。
1. 筆者の開発マシンには元々キングソフトのWPS2002が搭載されていましたが、Excelのオブジェクト作成に常に問題がありましたが、WPS2002をアンインストールしたところエラーはなくなりました。
2. 著者は、ASP コードを開発するときに FrontPage を使用することを好みます。FrontPage を開くと (サーバー側で)、オブジェクトの作成が不安定になり、成功する場合と失敗する場合があることがわかりました。調査の結果、Office シリーズのソフトウェアをサーバー側で実行すると、Excel オブジェクトを正常に作成することが困難であることがわかりました。
もう1つサーバー側で設定する必要があるのは、COMコンポーネントの操作権限です。コマンド ラインに「DCOMCNFG」と入力して、COM コンポーネント構成インターフェイスを開き、[Microsoft Excel] を選択し、[プロパティ] ボタンをクリックして、3 つのオプションすべてに [Everyone] を追加します。保存後、サーバーを再起動します。
クライアントの環境構成はOfficeとIEがインストールされていればユニバーサル版で大丈夫そうです。
2. Excel上のASPの基本操作
1. Excelオブジェクトの作成
set objExcelApp = CreateObject(Excel.Application)
objExcelApp.DisplayAlerts = false は警告を表示しません
objExcelApp.Application.Visible = false はインターフェイスを表示しません
2. 新しい Excel ファイルを作成します
objExcelApp.WorkBooks.add
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
3. 既存の Excel ファイルを読み取る
strAddr = Server.MapPath(.)
objExcelApp.WorkBooks.Open(strAddr & /Templet/Table.xls)
set objExcelBook = objExcelApp.ActiveWorkBook
set objExcelSheets = objExcelBook.Worksheets
set objExcelSheet = objExcelBook.Sheets(1)
4. Excel ファイルに名前を付けて保存します
objExcelBook.SaveAs strAddr & /Temp/Table.xls
5. Excelファイルを保存します。
objExcelBook.Save (作成者はテスト時に正常に保存しましたが、ページでエラーが報告されました。)
6. Excel 操作を終了します
objExcelApp.Quit は終了する必要があります
set objExcelApp = なし
3. ASPはExcelを操作してデータテーブルを生成します
1. 範囲内にデータを挿入する
objExcelSheet.Range(B3:k3).Value = Array(67, 87, 5, 9, 7, 45, 45, 54, 54, 10)
2. セルにデータを挿入する
objExcelSheet.Cells(3,1).Value=Internet Explorer
3. セルの文字色を変更する
objExcelSheet.Cells(3,1).Font.Color=vbred
4. セルの周囲に線を描きます
objExcelSheet.Cells(3.1).Borders(1).LineStyle =1
objExcelSheet.Cells(3.1).Borders(2).LineStyle =1
objExcelSheet.Cells(3.1).Borders(3).LineStyle =1
objExcelSheet.Cells(3.1).Borders(4).LineStyle =1
領域の中央に線を引く
objExcelSheet.Range(A1:G7).Borders(7).LineStyle =1
objExcelSheet.Range(A1:G7).Borders(8).LineStyle =1
8. セルの背景色を設定します
objExcelSheet.Cells(3.1).Interior.colorindex=17
9. セルを結合する
objExcelSheet.Range(A1:G7).Merge
10. 左右の配置を設定する
2 左 3 中 4 右
objExcelSheet.Range(A1).horizontalAlignment = 2
11. 上下の配置を設定する
2が中央にあります
objExcelSheet.Range(A1)..VerticalAlignment = 2
4. ASP は Excel を操作してグラフを生成します
1.チャートチャートを作成する
objExcelApp.Charts.Add
2. チャートの種類を設定します。
objExcelApp.ActiveChart.ChartType = 97
注: 2 次元の折れ線グラフ、4、2 次元の円グラフ、51。
3. チャートのタイトルを設定します
objExcelApp.ActiveChart.HasTitle = True
objExcelApp.ActiveChart.ChartTitle.Text = テスト グラフ
4. テーブルデータによるグラフィックの設定
objExcelApp.ActiveChart.SetSourceData objExcelSheet.Range(A1:k5),1
5.グラフィックスデータを直接設定する(推奨)
objExcelApp.ActiveChart.SeriesCollection.NewSeries
objExcelApp.ActiveChart.SeriesCollection(1).Name = =333
objExcelApp.ActiveChart.SeriesCollection(1).Values = =
6.バインドチャート
objExcelApp.ActiveChart.Location 1
7. 表示データテーブル
objExcelApp.ActiveChart.HasDataTable = True
8. 凡例の表示
objExcelApp.ActiveChart.DataTable.ShowLegendKey = True
5. サーバーサイド Excel ファイルの閲覧、ダウンロード、削除ソリューション
Location.href=、Navigate、Response.Redirect など、参照用のソリューションは多数あります。クライアント メソッドを使用すると、サーバーが Excel ファイルを生成する時間が増えるため、クライアント メソッドを使用することをお勧めします。
ダウンロードの実装は少し面倒です。インターネット上の既製のサーバーからコンポーネントをダウンロードするか、コンポーネントを自分でカスタマイズして開発する方が良い解決策です。もう1つの方法は、クライアント上でExcelコンポーネントを操作し、クライアントがサーバー側のExcelファイルを操作してクライアントに保存する方法です。この方法では、クライアントが安全でない ActiveX コントロールの操作許可を開く必要があります。各顧客にサーバーを信頼済みサイトとして設定するように通知する手間を考慮すると、手間を省くために最初の方法を使用することをお勧めします。
削除計画は 3 つの部分で構成されます。
A: 同じユーザーによって生成された Excel ファイルには同じファイル名が使用されます。ファイル名には、文字列が重複しないようにユーザー ID 番号またはセッション ID 番号を使用できます。こうすることで、新しいファイルが生成されるときに、以前のファイルが自動的に上書きされます。
B: Global.asa ファイルで Session_onEnd イベントが発生するように設定されている場合は、このユーザーの Excel 一時ファイルを削除します。
C: Global.asa ファイルで Application_onStart イベントが起動するように設定されている場合は、一時ディレクトリ内のすべてのファイルを削除します。
注: 推奨ディレクトリ構成/ソースコードディレクトリ/Templetテンプレートディレクトリ/Temp一時保存ディレクトリ
6. 付録
エラーが発生したときに Excel のプロセスが停止するのは頭の痛い問題です。各ファイルの前に On Error Resume Next を追加すると、ファイルがエラーを生成するかどうかに関係なく Application.Quit の実行が継続され、各プログラムの実行後にデッド プロセスが残らないようにするため、この状況の改善に役立ちます。
追加の 2 つのポイント:
1. その他の Excel の特定の操作は、マクロを記録することで解決できます。
2. サーバー側で SQL Enterprise Manager を開くと問題が発生します。
次のようにコードをコピーします。
<%
OnErrorResumeNextstrAddr=Server.MapPath(.)setobjExcelApp=CreateObject(Excel.Application)
objExcelApp.DisplayAlerts=false
objExcelApp.Application.Visible=false
objExcelApp.WorkBooks.Open(strAddr&/Templet/Null.xls)
setobjExcelBook=objExcelApp.ActiveWorkBook
setobjExcelSheets=objExcelBook.Worksheets
setobjExcelSheet=objExcelBook.Sheets(1)objExcelSheet.Range(B2:k2).Value=Array(Week1,Week2,Week3,Week4,Week5,Week6,Week7,
第8週、第9週、第10週)
objExcelSheet.Range(B3:k3).Value=Array(67,87,5,9,7,45,45,54,54,10)
objExcelSheet.Range(B4:k4).Value=Array(10,10,8,27,33,37,50,54,10,10)
objExcelSheet.Range(B5:k5).Value=Array(23,3,86,64,60,18,5,1,36,80)
objExcelSheet.Cells(3,1).Value=InternetExplorer
objExcelSheet.Cells(4,1).Value=Netscape
objExcelSheet.Cells(5,1).Value=OtherobjExcelSheet.Range(b2:k5).Select
objExcelApp.Charts.Add
objExcelApp.ActiveChart.ChartType=97
objExcelApp.ActiveChart.BarShape=3
objExcelApp.ActiveChart.HasTitle=True
objExcelApp.ActiveChart.ChartTitle.Text=
ブラウザに表示される各週の訪問者ログの割合
objExcelApp.ActiveChart.SetSourceDataobjExcelSheet.Range(A1:k5),1
objExcelApp.ActiveChart.Location1
'objExcelApp.ActiveChart.HasDataTable=True
'objExcelApp.ActiveChart.DataTable.ShowLegendKey=TrueobjExcelBook.
SaveAsstrAddr&/Temp/Excel.xlsobjExcelApp.Quit
setobjExcelApp=なし
%>
<!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.0Transitional//EN>
<HTML>
<頭>
<TITLE>新しいドキュメント</TITLE>
<METANAME=GeneratorCONTENT=MicrosoftFrontPage5.0>
<METANAME=著者CONTENT=>
<METANAME=キーワードCONTENT=>
<METANAME=説明CONTENT=>
</HEAD>
<本体>
</BODY>
</HTML>