使用Office Web Components更改页面布局

时间:2009-10-16 15:13:06

标签: excel asp-classic automation

我使用Office Web组件用值填充Excel模板。模板采用Excel xml格式,包含所有相关字段和布局选项,包括页面布局,在这种情况下为横向。我正在使用下面的代码填充此模板中的一些实际字段。

Set objSpreadsheet = Server.CreateObject("OWC11.Spreadsheet")
objSpreadsheet.XMLURL = Server.MapPath("xml") & "\MR1_Template.xls"

'Fill cells with values here
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "inline; filename=" & strFileNaam
Response.write objSpreadsheet.xmlData

保存新的Excel文件后,页面布局选项消失了。我查看了OWC的API文档,但找不到指定格局页面布局的选项

2 个答案:

答案 0 :(得分:0)

我不确定你是否传递了正确的数据。 XMLURL似乎是一个奇怪的方法名称,可以将XSL模板传递给?

如果您正在进行xsl转换,那么为什么不使用类似于本文的DOMXmlDocument:

http://www.codeproject.com/KB/XML/xml_spreadsheet_to_csv.aspx

轻松剪切和粘贴:

Dim xslt As New XslTransform
'Load the stylesheet.

xslt.Load(Server.MapPath(".") & "excel2csv.xsl")

Dim doc As New XmlDocument
'xmldata is string, use doc.Load(fileName) for file.

doc.LoadXml(xmlData)

'Create an XmlTextWriter which outputs to a file.

Dim fileName As String
fileName = Server.MapPath(".") & "book.csv"

Dim writer As XmlWriter = New XmlTextWriter(fileName, Nothing)
'Transform the data and send the output to the console.


xslt.Transform(doc, Nothing, writer, Nothing)
writer.Close()

答案 1 :(得分:0)

在对模板excel表(作为xml)和生成的xmlData进行一些详细比较后,我决定在生成的Xml中破解页面布局。这些是我添加的选项:

<x:WorksheetOptions>
  <x:PageSetup><x:Layout x:Orientation="Landscape"/></x:PageSetup>
  <x:FitToPage/>
  <x:Print>
    <x:FitWidth>2</x:FitWidth>
    <x:ValidPrinterInfo/>
    <x:PaperSizeIndex>9</x:PaperSizeIndex>
    <x:Scale>87</x:Scale>
  </x:Print>
</x:WorksheetOptions>