我使用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文档,但找不到指定格局页面布局的选项
答案 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>