Как конвертировать SpreadsheetMl, созданный в 2007 году, в 2010

У меня есть XML-документ электронной таблицы. Это используется для создания документа Excel через мое приложение Silverlight. Когда файл, созданный с помощью этого шаблона, сохраняется как *.xlsx, Excel 2010 выдает ошибку

«Excel не может открыть файл *.xlsx, поскольку формат или расширение файла недопустимы. Убедитесь, что файл не поврежден и что расширение файла соответствует формату файла».

Однако, если файл сохранен в формате .xls или .xml, проблем не возникает, и его можно открыть в Excel 2010.

<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
  <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
    <Author></Author>
    <LastAuthor></LastAuthor>
    <Created>2010-10-25T14:17:17Z</Created>
    <LastSaved>2010-10-25T14:17:17Z</LastSaved>
    <Company></Company>
    <Version></Version>
  </DocumentProperties>
  <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
    <WindowHeight>12015</WindowHeight>
    <WindowWidth>20055</WindowWidth>
    <WindowTopX>480</WindowTopX>
    <WindowTopY>150</WindowTopY>
    <ProtectStructure>False</ProtectStructure>
    <ProtectWindows>False</ProtectWindows>
  </ExcelWorkbook>
  <Styles>
    <Style ss:ID="Default" ss:Name="Normal">
      <Alignment ss:Horizontal="Left" ss:Vertical="Center"/>
      <Borders/>
      <Font ss:Color="#000000"/>
      <Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
      <NumberFormat/>
      <Protection/>
    </Style>
    <Style ss:ID="s21">
      <NumberFormat ss:Format="Short Date"/>
    </Style>
    <Style ss:ID="s22">
      <NumberFormat ss:Format="0"/>
    </Style>
  </Styles>
  <Worksheet ss:Name="Sheet1">
    <Table>
***
    </Table>
  </Worksheet>
</Workbook>

Как можно обновить этот шаблон, чтобы он соответствовал формату Excel 2010?


person xaria    schedule 27.12.2013    source источник


Ответы (1)


Это предупреждение является результатом расширения Повышение безопасности в Excel 2007+.

Как можно обновить этот шаблон, чтобы он соответствовал формату Excel 2010?

Его нельзя обновить без использования какого-либо внешнего приложения, которое понимает оба формата. Форматы SpreadsheetXML и XLSX очень разные.

person jmcnamara    schedule 29.12.2013
comment
Итак, каково возможное решение? - person xaria; 30.12.2013
comment
Измените расширение на xml, создайте файл xlsx вместо SpreadsheetXML, используя какую-нибудь библиотеку Silverlight, или найдите какое-нибудь приложение, такое как gnumeric ssconvert, которое может конвертировать форматы Excel. Но кроме первого из них нет простого решения. - person jmcnamara; 31.12.2013