SWT OleClientSite: Как загрузить файл XML в Excel? - PullRequest
1 голос
/ 26 января 2009

У меня есть файл Excel в формате OfficeML, MyData.xls. После обновления до Office 2007 с Office 2003 я получаю предупреждение о том, что содержимое файла не соответствует расширению файла. Похоже, что OfficeML теперь должен иметь расширение «xml».

В моем приложении я использую OleClientSite для отображения файла в объекте OleFrame. Если я изменю расширение файла на «xml», то Excel не запустится. Если я оставлю расширение как «xsl», то получу предупреждение.

Как заставить файл с расширением 'xml' открываться в OleFrame с помощью Excel?

Ответы [ 3 ]

2 голосов
/ 12 мая 2009

Самое простое решение - вернуться в формат 2003 года, который не должен требовать каких-либо изменений в вашем приложении. Для этого откройте файл с расширением * .xls. Когда появится сообщение с предупреждением («... вы хотите открыть файл сейчас?»), Перейдите к открытию (это предупреждение, чтобы убедиться, что вы случайно не открыли файл с поддержкой макросов). Когда в Excel откроется файл, просто сохраните его как * .xls. Это можно сделать, перейдя в «Кнопка Office / Сохранить как / Excel 97-2003 Workbook».

Теперь более сложным решением будет обновление вашего приложения для работы с новым форматом OfficeML. Я не знаю о компоненте, который вы используете, но он, вероятно, все еще будет работать для некоторых двоичных частей в новом стандарте (особенно проекты VBA), но вам придется распаковать и начать читать файлы XML ,

Если вы этого еще не сделали, создайте новую книгу Excel, сохраните ее как * .xlsx (формат 2007) и в проводнике измените ее расширение на * .zip. Откройте его и осмотрите вокруг. Для более глубокого изучения файлов я бы начал переваривать эту статью MSDN .

1 голос
/ 18 мая 2011

В используемом шаблоне XSL должно присутствовать <?mso-application progid="Excel.Sheet"?>. Ссылка ниже ясно объясняет, как включить инструкцию обработки. Я должен был сделать нечто подобное, и это сработало для меня.

http://www.shareyourwork.org/roller/ralphsjavablog/entry/generating_excel_sheets_with_xslt

1 голос
/ 11 мая 2009

Может быть, я что-то упустил, но разве вы не должны просто использовать .xslx в качестве своего расширения? Я предполагаю, что в OfficeML вы используете Office Open XML .

...