使用Ole连接访问的MS Excel XML格式

时间:2009-10-17 14:04:24

标签: c# xml excel ms-office

如何使用OLE连接访问XML Excel格式文件?可以吗?我已经访问了正常的Excel格式2003 xlsx文件,但是当我生成Excel XML格式时,我无法使用OLE访问。提前感谢您的帮助。

我可以在Excel中手动打开文件,但我无法通过OleDb Connection连接到它。我通过共享驱动器上的内存流将我自己的XML转储到Excel文件中。如果我手动将文件从Excel保存为Excel 97-2003格式。但是当我将其保存为XML文件时,我无法通过dataconnection访问它。

我的连接看起来像这样......

String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    "Data Source=" + file_path + ";Extended Properties=Excel 8.0;";

感谢先进的帮助。

这是我保存到xls文件并在Excel中打开它可以正常工作的代码。我从我的应用程序生成XML。我正在尝试使用Ole访问同一个文件?

<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="http://www.w3.org/TR/REC-html40"
<head>
<style>
<!--table
@page
{margin:0.0in .0in 0.34in .0in;
mso-header-margin:.5in;
mso-footer-margin:.18in;
mso-footer-data:"Page &P of  &N";
mso-page-orientation:landscape;}
-->
</style>
<!--[if gte mso 9]><xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>Summary</x:Name>
<x:WorksheetOptions>
<x:FitToPage/>
<x:FitToPage/>
<x:Print>
<x:FitHeight>32767</x:FitHeight><x:ValidPrinterInfo/>
<x:HorizontalResolution>600</x:HorizontalResolution>
<x:VerticalResolution>600</x:VerticalResolution>
<x:DoNotDisplayGridlines/>
<x:ProtectContents>False</x:ProtectContents>
<x:ProtectObjects>False</x:ProtectObjects>
<x:ProtectScenarios>False</x:ProtectScenarios>
</x:WorksheetOptions>
</x:ExcelWorksheet>

<Worksheet ss:Name="DATE1">
  <Table ss:ExpandedColumnCount="13" ss:ExpandedRowCount="2" x:FullColumns="1"
   x:FullRows="1" ss:DefaultColumnWidth="54" ss:DefaultRowHeight="14.25">
   <Row ss:Height="63.75">
   <Cell ss:StyleID="s63"><Data ss:Type="String">DATE</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something1</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something2</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something3</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something4</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something5</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something6</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something7</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something8</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something9</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something10</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something11</Data></Cell>
   <Cell ss:StyleID="s63"><Data ss:Type="String">something12</Data></Cell>
  </Row>
  <Row>
   <Cell ss:StyleID="s65"><Data ss:Type="String">something</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">268763</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">1331476</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">48267</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">1283209</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">34589</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">0.97304492097546003</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">23921</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">10668</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">0.99168646728631105</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">1730</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">8938</Data></Cell>
   <Cell ss:StyleID="s65"><Data ss:Type="Number">99.303464985049203</Data></Cell>
  </Row>
 </Table>
 <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
  <FitToPage/>
   <Print>
   <FitHeight>32767</FitHeight>
   <ValidPrinterInfo/>
    <HorizontalResolution>600</HorizontalResolution>
   <VerticalResolution>600</VerticalResolution>
  </Print>
  <Selected/>
  <Panes>
   <Pane>
    <Number>3</Number>
     <RangeSelection>R1C1:R2C13</RangeSelection>
   </Pane>
  </Panes>
  <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
</Workbook>

</xml><![endif]-->

</head>
</html>

2 个答案:

答案 0 :(得分:1)

从您更新的问题看起来好像您正在使用Excel的HTML导出(它将某种XML嵌入到可能由Internet Explorer呈现的导出页面的HTML头中。我认为这种格式可以追溯到Excel 2000和不支持数据绑定。

您是否因遗留原因需要使用此类格式?到目前为止,有更好的选择,例如使用Office 2003新的基于XML的 Office OpenXML 格式或Excel 2003引入的 XML Spreadsheet 2003 格式。

答案 1 :(得分:0)

扩展属性= Excel 12.0?