以下は、ASP を使用して PDF ファイルを作成(生成)するコードです。
<%
明示的なオプション
サブ CheckXlDriver()
エラー時は次へ再開
ディム vConnString
薄暗い、OConn、Oerr
' ファイル NUL への接続を試みます:
vConnString = DRIVER={Microsoft Excel ドライバー (*.xls)};DBQ=NUL:
oConn = CreateObject(ADODB.Connection) を設定します
oConn.Open vConnString
oConn.Errors の各 oErr について
' Excel ドライバーがファイルの作成に失敗したことを報告すると、
' その後、インストールされて動作している必要があります ;-))
oErr.NativeError = -5036 の場合
出口サブ
終了の場合
次
Response.Write プロバイダーまたはドライバーが使用できません。 MDAC を (再) インストールします。
Response.Write hex(Err.Number) & & Err.Description &
oConn.Errors の各 oErr について
Response.Write hex(oErr.Number) & & oErr.NativeError & & oErr.Description &
次
応答.終了
エンドサブ
関数 GetConnection(vConnString)
エラー時は次へ再開
GetConnection = Server.CreateObject(ADODB.Connection) を設定します。
GetConnection.Open vConnString
Err.Number <> 0 の場合、次に
GetConnection = なしを設定します
終了の場合
終了機能
関数 OptionTag(vChoice,vTrue)
Dim vSelected
vTrue の場合
v選択済み = 選択済み
終了の場合
OptionTag = <オプション & vSelected & > & _
Server.HtmlEncode(vChoice) & </option> & vbCrLf
終了機能
関数 IsChecked(vTrue)
vTrue の場合
IsChecked = チェック済み
終了の場合
終了機能
関数 BookOptions(vXlFile)
Dim vServerFolder
Dim ofFs、oFolder、oFile
Dim vSelected
vServerFolder = Server.MapPath(.)
oFs = Server.CreateObject(Scripting.FileSystemObject) を設定します
oFolder = oFs.GetFolder(vServerFolder) を設定します
oFolder.Files 内の各 oFile について
oFile.Type = Microsoft Excel ワークシートの場合
vSelected = (oFile.Name = vXlFile)
BookOptions = BookOptions & _
OptionTag(oFile.Name, vSelected)
終了の場合
次
oFolder = なしを設定します
設定 = なし
終了機能
関数 NamedRangeOptions(oConn、vXlRange、vTableType)
ディム・スキーマ
Dim vSelected
NamedRangeOptions = OptionTag(空, 空)
TypeName(oConn) = 接続の場合
oSchemaRs = oConn.OpenSchema(adSchemaTables) を設定します
oSchemaRs.EOF ではないときに実行します
oSchemaRs(TABLE_TYPE) = vTableType の場合
vSelected = (oSchemaRs(TABLE_NAME) = vXlRange)
NamedRangeOptions = NamedRangeOptions & _
OptionTag(oSchemaRs(TABLE_NAME), vSelected)
終了の場合
oSchemaRs.MoveNext
ループ
終了の場合
終了関数
関数 DataTable(oConn、vXlRange、vXlHasHeadings)
エラー時は次へ再開
' OleDbVbc.inc より
Const DB_E_ERRORSINCOMMAND = &H80040E14
薄暗い、フィールド
ディム vThTag、vThEndTag
vXlHasHeadings の場合
vThTag = <th>
vThEndTag = </th>
それ以外
vThTag = <td>
vThEndTag = </td>
終了の場合
DataTable = <テーブルボーダー=1>
TypeName(oConn) = 接続の場合
oRs = oConn.Execute([ & vXlRange & ]) を設定します
oConn.Errors.Count > 0 の場合
oConn.Errors の各 oConnErr について
oConnErr.Number = DB_E_ERRORSINCOMMAND の場合
データテーブル = データテーブル & _
<tr><td>そのような範囲はありません :</td><th> & vXlRange & </th></tr>
それ以外
データテーブル = データテーブル & _
<tr><td> & oConnErr.説明 & </td></tr>
終了の場合
次
それ以外
データテーブル = データテーブル & <tr>
ors.Fields の各 oField について
DataTable = DataTable & vThTag & oField.Name & vThEndTag
次
データテーブル = データテーブル & </tr>
Do While Not orRs.Eof
データテーブル = データテーブル & <tr>
ors.Fields の各 oField について
DataTable = DataTable & <td> & oField.Value & </td>
次
データテーブル = データテーブル & </tr>
ors.MoveNext
ループ
終了の場合
oR = 何も設定しない
それ以外
DataTable = DataTable & <tr><td>ファイルが別のアプリケーションによってロックされているか、アクセスできません。続行できません。</td></tr>
終了の場合
データテーブル = データテーブル & </テーブル>
終了機能
' - 主要 -
%>
<html>
<頭>
<title>Excel を読む</title>
<スクリプト言語=javascript>
<!--
function XlBook_onchange(theForm) {
with (フォーム) {
XlSheet.selectedIndex = 0;
XlSheet.disabled = true;
XlNamedRange.selectedIndex = 0;
XlNamedRange.disabled = true;
XlTypedRange.value = A:IV;
}
}
function XlSheet_onchange(theForm) {
with (フォーム) {
XlNamedRange.selectedIndex = 0;
XlTypedRange.value = XlSheet.options[XlSheet.selectedIndex].text;
}
}
function XlNamedRange_onchange(theForm) {
with (フォーム) {
XlSheet.selectedIndex = 0;
XlTypedRange.value = XlNamedRange.options[XlNamedRange.selectedIndex].text;
}
}
function XlTypedRange_onchange(theForm) {
with (フォーム) {
XlSheet.selectedIndex = 0;
XlNamedRange.selectedIndex = 0;
}
}
//-->
</スクリプト>
</head>
<本文>
<%
ディム vXlFile、vXlFilePath
Dim vXlRange、vXlHasHeadings
ディム v無効
ディム vConnString
薄暗い、オコン、オコンエラー
Const adSchemaTables = 20 ' adovbs.inc より
CheckXlDriver ' 動作していることを確認してください
vXlFile = リクエスト(XlBook)
vXlFile <> が空の場合
vXlRange = リクエスト(XlTypedRange)
vXlRange = 空の場合
vXlRange = A:IV
それ以外
vXlRange = 置換(vXlRange, !, $)
終了の場合
vXlHasHeadings = リクエスト(XlHasHeadings)
' 接続を確立します
vXlFilePath = Server.MapPath(vXlFile)
vConnString = DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ= & _ vXlFilePath
oConn = GetConnection(vConnString) を設定します
それ以外
vDisabled = 無効化
終了の場合
%>
<フォーム名=MyForm メソッド=POST アクション=<%=Request.ServerVariables(SCRIPT_NAME)%>>
<表の境界=1 幅=100%>
<tr>
<th>ワークブック:</th>
<td>
<select name=XlBook LANGUAGE=javascript onchange=return XlBook_onchange(MyForm)>
<%= BookOptions(vXlFile) %>
</select></td>
<td align=center>ワークシート:</td>
<td><select <%=vDisabled%> name=XlSheet LANGUAGE=javascript onchange=return XlSheet_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, システム テーブル) %>
</select></td>
</tr>
<tr>
<th>範囲:</th>
<td><input type=text name=XlTypedRange LANGUAGE=javascript onchange=return XlTypedRange_onchange(MyForm)
値 =<%= vXlRange %>></td>
<td align=center>名前付き範囲:</td>
<td><select <%=vDisabled%> name=XlNamedRange LANGUAGE=javascript onchange=return XlNamedRange_onchange(MyForm)>
<%= NamedRangeOptions(oConn, vXlRange, TABLE) %>
</select></td>
</tr>
<tr>
<番目>
<p> </th>
<tdcolspan=3>
<input type=checkbox name=XlHasHeadings
<%= IsChecked(vXlHasHeadings) %>
value=True> 最初の行を列見出しとして表示します</td>
</tr>
<tr>
<番目>
<p> </th>
<tdcolspan=3>
<a href=<%= vXlFile %>><%= vXlFile %></a>
</td>
</tr>
</テーブル>
<入力タイプ=送信値=送信名=cmdSubmit>
<入力タイプ=リセット値=リセット名=cmdReset>
</form><hr>
<%
vXlRange <> が空の場合
Response.Write DataTable(oConn、vXlRange、vXlHasHeadings)
終了の場合
%>
</body>
</html>