この記事の主な内容は、ASPからExcelファイルの例を使用することです。
ASPでExcelを使用する1つの方法は、Excelファイルをデータベースとしてリンクすることであり、操作はアクセスデータベース操作に似ています。固定形式の場合、この形式には、複雑なセルの合併、境界線のスタイル、パターン、セル間の式などが含まれています。 、保存、出力...
ここで説明した方法は、Excelオブジェクトを直接作成することです。これは、Excelドキュメントでさまざまな操作をバックグラウンドでより便利に実行できます。
サーバー側は、comコンポーネントの操作権限を設定する必要があります。コマンドラインでDComCNFGを入力し、Microsoft Excelを選択し、[すべての単一]オプションをすべて[すべて]を選択します。保存後にサーバーを再起動します。
それは非常に重要です。
ただし、この方法は、実際の操作にもあり、同じファイルが実行されている場合、その場所はまだありません適切にセットアップされていません。
さらに、上記の記事の例のコード形式はそれほど完全ではなく、コードが不正確である場合、ラインの破損とスペースの多くが不正確です。調査して修正すると、変更されたコードが次のようになりました(チャートが削除された部分が削除されました)。
プログラムコード:
- <%
- onerrorresumenext
- straddr = 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)
- objexcelsheet.range(b3:k3).value = array(67,87,5,7,45,45,54,54,10)
- objexcelsheet.range(b4:k4).value = array(10,10,8,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 =その他
- objexcelsheet.range(b2:k5).select
- Saveas(straddr&/temp/excel.xls)
- objexcelapp.quit
- setobjexcelApp = Nothing
- %>
- <!doctypehtmlpublic - // w3c // dtdhtml4.0transitional // en>
- <html>
- <head>
- <title> newDocument </title>
- <metaname = generatorContent = microsoftfrontpage5.0>
- <Metaname = authorContent =>
- <metaname = keywordscontent =>
- <Metaname = DescriptionContent =>
- </head>
- <body>
- </body>
- </html>
Excelファイルを操作した後、ファイルを出力する必要がありますIEで直接開くには、ExcelファイルをFSOでロードしてからIEに出力しないでください。
プログラムコード:
- <%
- dimfso、fileext、strfilepath、mime
- strfilepath = f:/aspxuexi.doc
- setFSO = server.createObject(scripting.filesystemObject)
- fileext = fso.getExtensionName(strfilepath)
- setfso =何もない
- SelectCaseFileExt
- Casedoc
- mime = application/msword
- casexls
- mime = application/msexcel
- EndSelect
- CallOutput(strfilepath、mime)
- '############################################################################## #####
- functionoutput(strfilepath、mime)
- Response.ContentType = MIME
- ConstadTypebinary = 1
- setobjstream = server.createobject(adodb.stream)
- objstream.open
- objstream.type = adtypebinary
- objstream.loadfromfilestrfilepath
- respons.binarywriteobjstream.read
- objstream.close
- setobjstream =何もない
- エンド機能
- '############################################################################## #####
- %>
実際のアプリケーションでは、サーバーがExcelまたはAccessプログラムを実行している場合、クライアントはExcel.Applicationオブジェクトの確立を別の場合に提出します。 。
私たちの部門の内部ネットワークに関連する例がありますローカルエリアネットワークで実行されるクライアントIEセキュリティレベルは、あなたが低く設定して、関連するActiveXの実行を許可することができます(つまり、IEツールオプションで許可するあらゆる種類のセキュリティ関連のものを設定し、どの特定のアイテムがそうではないか調査されていない場合でも、警告ウィンドウをポップアップしますか?
実装されたコードは前のログに似ており、最も単純なログは次のとおりです。
プログラムコード:
- <scriptlanguage = vbscript>
- setobjexcelApp = createObject(excel.application)
- objexcelapp.displayalerts = true
- objexcelapp.workbooks.open(http://xxx.xxx.xxx/xxx.xls)
- '完全なネットワークアドレスを備えたXLSファイル、このファイルはフォーマットおよび印刷され、サーバーに保存されています
- setobjexcelbook = objexcelapp.activeworkbook
- setobjexcelsheets = objexcelbook.worksheets
- setobjexcelsheet = objexcelbook.sheets(1)
- '====データベースからデータが抽出されている場合、これらのステートメントをバックグラウンドプログラムで生成でき、ASPの列を示します。
- '例:respons.writeobjexcelsheet.range(b2).value =&rs(xxx)&
- 'またはobjexcelsheet.range(b2).value = <%= rs(xxx)%>
- objexcelsheet.range(b2:k2).value = array(week1、week2、week3、week4、week5、week6、week7)
- objexcelsheet.range(b3:k3).value = array(67,87,5,7,45,45,54,54,10)
- objexcelsheet.range(b4:k4).value = array(10,10,8,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 =その他
- '=======================
- 'objexcelapp.quit
- 'setobjexcelApp =何もない
- </script>
上記のコードで
- 'objexcelapp.quit
- 'setobjexcelApp =何もない
キャンセルとして、ここではexpel.applicationを閉じないでください。そうしないと、データが入力された後、クライアントに開かれたExcelファイルを修正または印刷する必要があります。
上記は、ASPから出力Excelファイルを使用するプロセス全体です。