XML-файл как файл Excel - PullRequest
3 голосов
/ 07 апреля 2010

У меня есть несколько отчетов, которые я запускаю для своей базы данных, которые в конечном итоге должны быть переданы конечным пользователям в виде электронных таблиц Excel.

Первоначально я создавал текстовые отчеты, но шаги по преобразованию текста в электронную таблицу были немного громоздкими. Было слишком много шагов для импорта текста в электронную таблицу, и многострочные текстовые строки были импортированы как отдельные строки в Excel (что было неверно).

В настоящее время я создаю простой XML-файл, сохраняя файл с расширением «.xls». Это работает лучше, но по-прежнему существует проблема, связанная с тем, что Excel запрашивает у пользователя диалоговое окно импорта XML каждый раз, когда они открывают файл, а затем приходится сохранять новый файл, если они добавляют примечания или изменяют макет на файл (который они почти наверняка будут делать).

Пример файла "xls":

<?xml version="1.0" standalone="yes"?>             
<report_rows>                                      
  <row>                                            
    <NAME>Test Data</NAME> 
    <COUNT>345</COUNT>                 
  </row>
  <!-- many more row elements... -->
</report_rows>

Есть ли способ добавить разметку в файл, чтобы подсказать Excel, как он должен импортировать и обрабатывать файл? В идеале конечный пользователь должен иметь возможность открывать и сохранять файл, как и любую другую электронную таблицу, которую он создает непосредственно из Excel.

Это вообще возможно?

UPDATE:

Мы запускаем Office 2003 здесь.

UPDATE:

XML генерируется из сценария sqlplus, здесь нет возможности использовать C # / .NET.

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Для Excel 2003 и 2007 используйте SpreadSheet XML (XMLSS), для этого он и предназначен.Вам будет легко, и есть большая поддержка и библиотеки.Более того, поскольку вы уже генерируете XML, все, что вам действительно нужно сделать, это создать таблицы стилей преобразования или просто изменить свой код.Вам не нужен Excel для создания XMLSS.

0 голосов
/ 01 февраля 2016

Я сталкивался с этой проблемой еще до начала работы и нашел, что лучший способ конвертировать несколько файлов XML в файлы Excel - это использовать макрос Visual Basic (VBA). Если у вас мало или нет опыта использования VBA, есть много учебных материалов и ресурсов, таких как http://www.anthony -vba.kefra.com / index.htm .

'Create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Get the folder object
 Set objFolder = objFSO.GetFolder("C:\Sem-o_Archive\XML")

'loops through each file in the directory and prints their names and path
For Each objFile In objFolder.Files
cutting = Left(objFile.name, 15)
Workbooks.Add
ActiveWorkbook.XmlImport URL:="C:\path\to\files\" & objFile.name,      ImportMap:=Nothing, _
                     Overwrite:=True, Destination:=range("$A$1")
ActiveWorkbook.SaveAs "C:\path\to\save\location" & cutting & "xls"
ActiveWorkbook.Close True
Next objFile

Приведенный выше код преобразует все файлы XML в указанной папке и сохраняет их в указанной папке, однако для использования этого кода вам необходимо исправить переменную обрезки, чтобы она содержала имя файла XML.

Надеюсь, это помогло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...