1

文字列変数でvb.netに2つのHTMLテーブルを作成し、実行時にaspxページのinnerhtmlに文字列テキストを追加しています。これに対するコードは次のとおりです(これはサンプルコードです):

Dim oBuilder as stringbuilder
With oBuilder
 .Append("<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">")
                .Append("<head>")
                .Append("<meta http-equiv=""Content-Type"" content=""text/html;charset=windows-1252"">")
                .Append("<!--[if gte mso 9]>")
                .Append("<xml>")
                .Append("<x:ExcelWorkbook>")
                .Append("<x:ExcelWorksheets>")
                .Append("<x:ExcelWorksheet>")
                .Append("<x:Name>Summary</x:Name>")
                .Append("<div>")
                .Append("<table style="" border:solid 1px black; "">")
                .Append("<tr>")
                .Append("<td>Column 1</td>")
                .Append("</tr>")
                .Append("</table>")
                .Append("</div>")
                .Append("<div>")
                .Append("<table style="" border:solid 1px black; "">")
                .Append("<tr>")
                .Append("<td>Column 1 - Table 2</td>")
                .Append("</tr>")
                .Append("</table>")
                .Append("</div>")
End With
LogDetails.InnerHtml = oBuilder.ToString

aspxページには、実際にはテーブルが正常に表示されます(上下に表示されます)。次の行を追加し、XMLでOffice機能を使用してワークシートに名前を付けてみました。2つのワークシートを作成して名前を付けることができました。

        .Append("<html xmlns:x=""urn:schemas-microsoft-com:office:excel"">")
        .Append("<head>")
        .Append("<meta http-equiv=""Content-Type"" content=""text/html;charset=windows-1252"">")
        .Append("<!--[if gte mso 9]>")
        .Append("<xml>")
        .Append("<x:ExcelWorkbook>")
        .Append("<x:ExcelWorksheets>")
        .Append("<x:ExcelWorksheet>")
        .Append("<x:Name>Summary</x:Name>")
        .Append("</x:ExcelWorksheet>")
        .Append("<x:ExcelWorksheet>")
        .Append("<x:Name>Summary no 2</x:Name>")
        .Append("</x:ExcelWorksheet>")
        .Append("</xml>")
        .Append("<![endif]-->")
        .Append("</head>")
        .Append("<body>")
        .Append(oBuilder)
        .Append("</body>")
        .Append("</html>")

ページのレンダリング後、ボタンをクリックしてテーブルをエクスポートし、Excelにエクスポートします。ボタンクリックイベントは次のことを行います。

Context.Response.ContentType = "application/ms-excel"
Context.Response.AddHeader("content-disposition", "attachment; filename=" + Session("ExcelFile").Trim + "")
Context.Response.AddHeader("Content-Transfer-Encoding", "binary")
Context.Response.Write(LogDetails.InnerHtml)

このボタンを押すと、保存/開くダイアログボックスが表示されます。保存したExcelシートを開くと、2つのテーブルが上下に並んでいることがわかります...テーブルを別々のワークシートに配置したいと思います。何年もの作業があるため、コード全体を再作成したくありません…最初のHTMLテーブルを「summary」ワークシートに、2番目のHTMLテーブルを「summaryno2」ワークシートに配置する方法はありますか。コード全体を作り直すには?

私はこれについて3日以上研究しているので、どんな助けでも大歓迎です...(私の研究スキルについてはあまり言いません)

よろしく、サニー

4

1 に答える 1

0

最初のテーブルを最初のスプレッドシートにレンダリングしてから、アクティブなワークシートを変更して 2 番目のテーブルをレンダリングする必要があると思います。

于 2012-09-24T10:33:41.730 に答える