1. OWC の使用
OWC とは何ですか?
OWC は Office Web Compent の略で、Microsoft の Office Web コンポーネントであり、Web 上にグラフィックを描画するための柔軟で基本的なメカニズムを提供します。イントラネット環境では、クライアント コンピュータ上に特定のブラウザといくつかの強力なソフトウェア (IE5 や Office 2000 など) が存在すると想定できる場合、Office Web コンポーネントを使用して対話型のグラフィカル開発環境を提供することができます。このモードでは、クライアント ワークステーションがタスク全体の大部分を共有します。
<%明示的なオプション
クラスExcelGen
プライベートobjスプレッドシート
プライベート iColOffset
プライベート iRowOffset
SubClass_Initialize()
Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet")
iRowOffset = 2
iColOffset=2
End Sub
Sub Class_Terminate()
Set objSpreadsheet = Nothing 'クリーンアップ
End Sub
Public プロパティ Let ColumnOffset(iColOff)
iColOff > 0 の場合
iColOffset = iColOff
それ以外
iColOffset=2
終了の場合
End プロパティ
Public プロパティ Let RowOffset(iRowOff)
iRowOff > 0 の場合
iRowOffset = iRowOff
それ以外
iRowOffset = 2
終了の場合
End Property Sub GenerateWorksheet(objRS)
' Recordset の内容に基づいて Excel ワークシートにデータを設定します
'まずタイトルを表示します
objRS.EOF の場合は Exit Sub
Dim objField、iCol、iRow
iCol = iColOffset
iRow = iRowOffset
objRS.Fields の各 objField について
objSpreadsheet.Cells(iRow, iCol).Value = objField.Name
objSpreadsheet.Columns(iCol).AutoFitColumns
'Excelテーブルのフォントを設定します
objSpreadsheet.Cells(iRow, iCol).Font.Bold = True
objSpreadsheet.Cells(iRow, iCol).Font.Italic = False
objSpreadsheet.Cells(iRow, iCol).Font.Size = 10
objSpreadsheet.Cells(iRow, iCol).Halignment = 2 '中央揃え
iCol = iCol + 1
次の 'objフィールド
'すべてのデータを表示します
objRS.EOF ではないときに実行します
iRow = iRow + 1
iCol = iColOffset
objRS.Fields の各 objField について
IsNull(objField.Value) の場合
objSpreadsheet.Cells(iRow, iCol).Value = ""
それ以外
objSpreadsheet.Cells(iRow, iCol).Value = objField.Value
objSpreadsheet.Columns(iCol).AutoFitColumns
objSpreadsheet.Cells(iRow, iCol).Font.Bold = False
objSpreadsheet.Cells(iRow, iCol).Font.Italic = False
objSpreadsheet.Cells(iRow, iCol).Font.Size = 10
終了の場合
iCol = iCol + 1
次の 'objフィールド
objRS.MoveNext
ループ
End Sub Function SaveWorksheet(strFileName)
'ワークシートを指定したファイル名で保存します
エラー時は次へ再開
objSpreadsheet.ActiveSheet.Export(strFileName, 0) を呼び出します。
ワークシートの保存 = (エラー番号 = 0)
終了機能
終了クラス
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "SELECT * FROM xxxx", "プロバイダー = SQLOLEDB.1;永続セキュリティ
情報 = True;ユーザー ID = xxxx;パスワード = xxxx;初期カタログ = xxxx;データ ソース = xxxx;"
ディム保存名
SaveName = Request.Cookies("保存名")("名前")
薄暗いobjExcel
DimExcelPath
ExcelPath = "Excel" & 保存名 & ".xls"
objExcel = New ExcelGen を設定します
objExcel.RowOffset = 1
objExcel.ColumnOffset = 1
objExcel.GenerateWorksheet(objRS)
objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) の場合
'Response.Write "<html><body bgcolor='gainsboro' text='#000000'>Excelファイルとして保存しました。
<a href='" & server.URLEncode(ExcelPath) & "'>ダウンロード</a> "
それ以外
Response.「保存中にエラーが発生しました!」と書き込みます。
終了の場合
objExcel = なしを設定します
objRS.Close
objRS = なしを設定します
%>
2. Excel アプリケーション コンポーネントを使用して、クライアント上の Excel または Word にエクスポートします。
注: 2 つの関数の「data」は、Web ページ<input type="hidden" name="out_word"
にエクスポートされるテーブルの ID です。
" onclick="vbscript :buildDoc" value="Word にエクスポート" class="notPrint">
<input type="hidden" name="out_excel" onclick="AutomateExcel();" value="Excel にエクスポート" class="notPrint">
Excel コードにエクスポート
<SCRIPT LANGUAGE="javascript">
<!--
関数 AutomateExcel()
{
// Excelを起動し、Applicationオブジェクトを取得します。
var oXL = new ActiveXObject("Excel.Application");
// 新しいワークブックを取得します。
var oWB = oXL.Workbooks.Add();
var oSheet = owB.ActiveSheet;
var テーブル = document.all.data;
var Hang = table.rows.length;
var lie = table.rows(0).cells.length;
// セルごとにテーブルヘッダーを追加します。
for (i=0;i<hang;i++)
{
for (j=0;j<lie;j++)
{
oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
oXL.UserControl = true;
}
//-->
</SCRIPT>
Wordコードにエクスポート
<script language="vbscript">
サブビルドドキュメント
テーブル = document.all.data を設定します
行 = テーブル.行.長さ
列 = table.rows(1).cells.length
Set objWordDoc = CreateObject("Word.Document")
objWordDoc.Application.Documents.Add theTemplate、False
objWordDoc.Application.Visible=True
Dim theArray(20,10000)
i=0 から row-1 まで
j=0 から列 1 まで
theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT
次
次
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("Comprehensive Query Result Set") //テーブルのタイトルを表示します
objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefore("")
rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range を設定します。
rngパラあり
.Bold = True //タイトルを太字にします
.ParagraphFormat.Alignment = 1 //タイトルを中央揃えにします
.Font.Name = "公式スクリプト" //タイトルのフォントを設定
.Font.Size = 18 //タイトルのフォントサイズを設定します
で終わる
rngCurrent = objWordDoc.Application.ActiveDocument.Paragraphs(3).Range を設定します。
tabCurrent = ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column)
for i = 1 を列
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.InsertAfter theArray に
設定します。(i,1)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.ParagraphFormat.alignment=1
次
i =1 の場合、列まで
j = 2 の場合、行へ
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.InsertAfter theArray(i,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.ParagraphFormat.alignment=1
次
次の
エンドサブ
</SCRIPT>
3. IEで直接開き、EXCELファイルとして保存します。
読み込んだデータをWebページ上に表示すると同時に、次の文を追加してEXCELを表示します。クライアント上のテーブル。
<%response.ContentType ="application/vnd.ms-excel"%>
注: 表示されるページでは、<table> のみが出力されます。他のテーブル以外の情報は出力しないことをお勧めします。
4. 半角カンマ区切りでcsvをエクスポートします。
fsoメソッドでテキストファイルを生成し、拡張子付きのcsvファイルを生成します。このファイルでは、1 行がデータテーブルの 1 行になります。データテーブルのフィールドを半角カンマで区切って生成します。 (fso によるテキスト ファイルの生成方法はここでは紹介しません)
CSV ファイル (カンマ区切りファイル) について
このオプションを選択すると、システムはダウンロード用の CSV ファイルを作成します。CSV は最も一般的なファイル形式です。さまざまなPCフォームやデータベースを簡単に操作できます。
出力形式として表を選択した場合でも、結果を CSV ファイルとしてダウンロードできることに注意してください。表出力画面の下部に「CSVファイル」オプションがあるので、クリックしてファイルをダウンロードします。
スプレッドシート ソフトウェアをテキスト (TXT)/カンマ区切りファイル (CSV) に関連付けるようにブラウザを設定すると、ダウンロード時にファイルが自動的に開きます。ダウンロード後、EXCEL がローカルにインストールされている場合は、このファイルをクリックすると、EXCEL ソフトウェアで自動的に開きます。