Быстрое преобразование XML в Excel - PullRequest
9 голосов
/ 13 апреля 2010

Какой самый быстрый (с наименьшими усилиями, а не супер производительностью) способ преобразования 112К строк в XML в представление Excel.

Ответы [ 8 ]

26 голосов
/ 14 апреля 2010

Почему так сложно? Просто откройте Файл с помощью Файл-> Открыть выберите XML и загрузите его. Посмотри, что будет.

6 голосов
/ 16 апреля 2010

Если вы используете Excel 2007 и хотите использовать XSLT, вам лучше всего использовать функции EXPath Zip Module для изменения существующего файла Excel .xslx.

Однако я бы предпочел использовать небольшой макрос Excel VBA.

Ниже приведен пример кода для процедуры VBA под названием «нагрузка» - в этом примере используется XML DOMТаким образом, все 112K строк вашего XML будут сначала загружены в память, но если производительность не является проблемой, то она проще, чем альтернатива SAX.

Вам необходимо изменить xpathToExtractRow, чтобы соответствовать вашей структуре ввода XML,Существует также предположение, что непосредственные дочерние узлы элемента строки XML содержат данные ячейки, которые вы хотите импортировать как текстовые узлы, в противном случае вам нужно будет использовать вызов SelectNode для получения необходимых данных.

Private dom As DOMDocument60

Public Sub load ()

Dim nodeList As IXMLDOMNodeList
Dim nodeRow As IXMLDOMNode
Dim nodeCell As IXMLDOMNode
Dim rowCount As Integer
Dim cellCount As Integer
Dim rowRange As Range
Dim cellRange As Range
Dim sheet As Worksheet

Dim xpathToExtractRow As String
xpathToExtractRow = "/feed/row"

Set dom = New DOMDocument60
dom.load ("c:\test\source.xml")
Set sheet = ActiveSheet
Set nodeList = dom.SelectNodes(xpathToExtractRow)

rowCount = 0
For Each nodeRow In nodeList
    rowCount = rowCount + 1
    cellCount = 0
    For Each nodeCell In nodeRow.ChildNodes
        cellCount = cellCount + 1
        Set cellRange = sheet.Cells(rowCount, cellCount)
        cellRange.Value = nodeCell.Text
    Next nodeCell
Next nodeRow

End Sub

Пример ввода XML:

<?xml version="1.0" encoding="utf-8"?>
<feed>
  <row>
    <firstname>joe</firstname>
    <lastname>smith</lastname>
    <country>jamaica</country>
  </row>
  <row>
    <firstname>bill</firstname>
    <lastname>coots</lastname>
    <country>uk</country>
  </row>
</feed>
2 голосов
/ 29 апреля 2015

Если у вас Windows 7+, используйте PowerShell. Это довольно быстро и просто.

One-вкладыш:

([xml](Get-Content myfile.xml)).xml.note | Export-Csv myoutput.csv

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

Возьмем, к примеру, следующее содержимое myfile.xml :

<xml>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>
<note>
  <to>Jason</to>
  <from>Alice</from>
  <heading>Help</heading>
  <body>I can't figure this out.</body>
</note>
</xml>

Вы можете назначить XML-переменную следующим образом:

[xml]$data = Get-Content myfile.xml

Теперь вы можете делать все что угодно, например:

$data.GetElementsByTagName('note')

или просто

$data.xml.note.from
1 голос
/ 21 августа 2013

Вы можете использовать http://xmlgrid.net/xmlToExcel.html для преобразования XML в Excel. XmlGrid позволяет вам выбрать корневой или любой другой элемент вашего XML-документа для преобразования в файл Excel. Преобразованный файл Excel будет иметь один или несколько листов в зависимости от структуры вашего XML-документа.

1 голос
/ 17 января 2013

Я предлагаю использовать Eurostat SDMX Converter , это Java-программа, поэтому она не зависит от платформы. Используйте общий XML-файл в качестве входных данных и XML-файл структуры в качестве DSD-файла.

0 голосов
/ 07 августа 2017

Мы создали видео, которое показывает пошаговые инструкции по , как конвертировать XML в Excel .

Видео конвертации XML проходит следующую последовательность шагов

  • Загрузка файлов XML в Flexter (наш бесплатный конвертер XML)

  • Преобразование XML в текстовые файлы (значения, разделенные табуляцией, TSV)

  • Импорт текстовых файлов в Excel

  • Объединение наборов данных в Excel

  • Анализ данных в таблице Excel PowerPivot

0 голосов
/ 06 декабря 2013
  1. Откройте файл XML.
  2. Щелкните правой кнопкой мыши страницу и выберите «Экспорт в Microsoft Excel».
  3. Нажмите на открывшуюся страницу Excel и выберите импорт.
  4. Excel сообщит вам, что создаст собственную схему. Хит ОК.
  5. Excel спросит вас, куда поместить данные, и по умолчанию будет иметь ячейку $ A $ 1 Хит ОК.
  6. Готово:)
0 голосов
/ 13 апреля 2010

Вероятно, просто прочитайте XML на каком-либо языке высокого уровня (JAVA, C # и т. Д., У всех есть такие возможности), запишите файл в виде файла .csv, а затем импортируйте его в Excel, используя функцию Data-> Import.

Могут быть и лучшие способы, хотя это один простой способ.

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