Xml to excel на delphi

Бывалый
*

Профиль
Группа: Участник
Сообщений: 177
Регистрация: 29.7.2004
Где: г. Великие Луки

Репутация: нет
Всего: 1

Доброго дня, друзья!
У меня стоит такая задача — хочу с помощью Delphi7 отправить в Excel файл XML.
То есть, в самой Дельфи я не делаю никакой обработки XML-файла а просто запускаю Excel и кидаюсь в него XML-файлом.
Дальше уже внутри Excel я собираюсь его средствами Дельфи обрабатывать.
Делаю я это вот так:

Код

procedure TForm1.btn1Click(Sender: TObject);
begin
 if dlgOpenXML.Execute then
 begin
  E:=CreateOleObject('Excel.Application');
  E.WorkBooks.Add;
  E.Workbooks.Open(dlgOpenXML.FileName,ReadOnly:=True);
  E.Visible:=True;
 end;
end;

Проблема в том, что файл открывается таким способом как простой xls, в виде таблицы, некорректно отображая структуру и содержание XML. Я же хочу сделать так, как это делает сам Excel, когда им открываешь XML-файл, он спрашивает в каком виде открыть, в виде XML-таблицы или еще там варианты. И когда я в его окошке выбираю в виде XML-таблицы, он красиво его открывает.
Когда я попробовал сделать макрос в VB Excel, там прописывается параметр LoadOption=xmlToXMLTable, или чет-типа этого. Как такую опцию сделать в Дельфи? smile

Нашел решение, подсмотрел как VB макрос делает, только в Delphi это выглядит вот так:

Код

procedure TForm1.btn1Click(Sender: TObject);
var LoadOption:Variant;
begin
 if dlgOpenXML.Execute then
 begin
  E:=CreateOleObject('Excel.Application');
  E.Workbooks.OpenXML(dlgOpenXML.FileName,LoadOption:=2);
  E.Visible:=True;
 end;
end;

и очень красиво открывается, так как мне и нужно smile 
Спасибо всем. 

Это сообщение отредактировал(а) Slawanix — 15.4.2010, 11:54

———————

моск кипит    

osminog

5 / 5 / 2

Регистрация: 31.05.2010

Сообщений: 80

1

29.07.2012, 16:33. Показов 5309. Ответов 2

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день, уважаемые программисты!
Вопрос тем, кто работал или работает с XML и Office Excel!
Имеется файл XML (привожу кусок фрагмента):

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
..........
    <RRL_CASE>
      <ID>849bc1b3-5900-4e28-bba6-993156377de8</ID>
      <SN_POL>0293889775000336</SN_POL>
      <LASTNAME>Фамилия1</LASTNAME>
      <NAME>Имя1</NAME>
      <PATRONYMIC>Отчество1</PATRONYMIC>
      <SEX>Ж</SEX>
      <BDAY>2011-06-24</BDAY>
      <DOC>14</DOC>
      <DOC_SER>8014</DOC_SER>
      <DOC_NMB>418683</DOC_NMB>
      <ADDR_REG>80435</ADDR_REG>
      <REGION>Город1</REGION>
      <ADDR_TEXT>Адрес1</ADDR_TEXT>
      <CODE>25</CODE>
      <START>2011-06-24</START>
      <STOP>2014-06-24</STOP>
    </RRL_CASE>
..........

Нужно:
1. выбрать данный документ (открыть его)
2. перенести данные в Excel, естественно по столбцам, содержащие:
№ п/п (1 и т.д. по порядку …)
SN_POL
LASTNAME
NAME
PATRONYMIC
SEX
BDAY
DOC
DOC_SER
DOC_NMB
ADDR_REG
REGION
ADDR_TEXT
CODE
START
STOP

3. По окончанию, остановить процесс переноса данных, сохранить в Excell с названием открытого файла и открыть сам файл Excel.

Буду рад любой информации, что бы знать, хоть в какую сторону «копать»!!!

Я никогда не работал с форматом XML, а тем более перевод его в Excel
Кто знает, помогите, пожалуйста! Переработать данный файл в 450 000 строк руками очень тяжело, а работу эту повесили на меня (((

Заранее, спасибо!



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

29.07.2012, 16:33

Ответы с готовыми решениями:

Работа с текстом (txt, xml)
Всем привет! Подскажите пожалуйста! Мне часто проходится вручную копировать информацию из файлов…

Работа с XML через System.Xml
День добрый!
Подскажите пожалуйста как решить такую проблему.
Есть XML документ следующего…

Работа с текстом
Обрисовываю проблему:

Представте себе небольшой текст несколько предложений, размещеный на…

Работа с текстом в VB
Народ помогите с кодом.
Есть текстовый файл C:vip_kl.txt (формат Dos),
Данные в файле см. ниже….

2

Arcor

5688 / 2279 / 466

Регистрация: 20.11.2009

Сообщений: 7,680

Записей в блоге: 1

29.07.2012, 20:49

2

Лучший ответ Сообщение было отмечено как решение

Решение

образовалось несколько вопросов. XML файл не выложен самое начало, не видно как идет само дерево, предположительно я сделал вот так вот, добавил еще одну главную ветку, и в нее потом вложил то что вы привели, иначе не отпарсишь весь файл, а только один такой блок ! Добавил я ветку la. Вот на примере покажу как

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="Windows-1251"?>
<la>
<RRL_CASE>
<ID>849bc1b3-5900-4e28-bba6-993156377de8</ID>
<SN_POL>0293889775000336</SN_POL>
<LASTNAME>Фамилия1</LASTNAME>
<NAME>Имя1</NAME>
<PATRONYMIC>Отчество1</PATRONYMIC>
<SEX>Ж</SEX>
<BDAY>2011-06-24</BDAY>
<DOC>14</DOC>
<DOC_SER>8014</DOC_SER>
<DOC_NMB>418683</DOC_NMB>
<ADDR_REG>80435</ADDR_REG>
<REGION>Город1</REGION>
<ADDR_TEXT>Адрес1</ADDR_TEXT>
<CODE>25</CODE>
<START>2011-06-24</START>
<STOP>2014-06-24</STOP>
</RRL_CASE>
</la>

в этот тег вложил для проверки парса, еще несколько блоков по структуре приведенной выше
написал код парсировки данного файла

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XMLDOC, StdCtrls, ComObj;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var XML: TXMLDocument;
    i, j: Integer;
    Ex: Variant;
begin
 
  XML := TXMLDocument.Create(Self);  // создаем XML
  XML.LoadFromFile('1.xml');         // загружаем XML
  Ex := CreateOleObject('Excel.Application'); //создаем Excel
  Ex.Workbooks.Add; // создаем новую страницу
 
  for i := 0 to XML.ChildNodes.Nodes[1].ChildNodes.Nodes[1].ChildNodes.Count - 1 do  // пробегаемся по XML по ветке la
    Ex.Cells[1, i+1] := XML.ChildNodes[1].ChildNodes[1].ChildNodes[i].NodeName;      // вытаскиваем все названия тегов в этой ветке и записываем в 1 строчку в Excel
 
  for i := 0 to XML.ChildNodes.Nodes[1].ChildNodes.Count - 1 do // заходим в ветку la и начинаем оттуда считывать все блоки по очереди
    for j := 0 to XML.ChildNodes.Nodes[1].ChildNodes.Nodes[i].ChildNodes.Count - 1 do  // пробегаемся по всему la , заходим в каждый найденный блок и вытаскиваем все значения всех тегов
      Ex.Cells[i+2, j+1] := XML.ChildNodes[1].ChildNodes[i].ChildNodes[j].NodeValue;   // записываем значения
 
  Ex.Visible := True;  // показываем Excel
  Ex.Quit;             // выходим из Excel
 
  XML.Free;            // убиваем объект XML
end;
 
end.

получилось вот так

вот сама еще программа в архиве и сам xml файл, немного модифицированный, прошу отписать на счет вашего xml оригинала, как там ветки построены !!! Чтобы если что, исправить по быстрому вам прграмму

Удачи

Вложения

Тип файла: zip xml_to_xls.zip (594.4 Кб, 109 просмотров)



3



osminog

5 / 5 / 2

Регистрация: 31.05.2010

Сообщений: 80

04.08.2012, 20:01

 [ТС]

3

Цитата
Сообщение от Arcor
Посмотреть сообщение

образовалось несколько вопросов. XML файл не выложен самое начало, не видно как идет само дерево, предположительно я сделал вот так вот, добавил еще одну главную ветку, и в нее потом вложил то что вы привели, иначе не отпарсишь весь файл, а только один такой блок ! Добавил я ветку la. Вот на примере покажу как

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="Windows-1251"?>
<la>
<RRL_CASE>
<ID>849bc1b3-5900-4e28-bba6-993156377de8</ID>
<SN_POL>0293889775000336</SN_POL>
<LASTNAME>Фамилия1</LASTNAME>
<NAME>Имя1</NAME>
<PATRONYMIC>Отчество1</PATRONYMIC>
<SEX>Ж</SEX>
<BDAY>2011-06-24</BDAY>
<DOC>14</DOC>
<DOC_SER>8014</DOC_SER>
<DOC_NMB>418683</DOC_NMB>
<ADDR_REG>80435</ADDR_REG>
<REGION>Город1</REGION>
<ADDR_TEXT>Адрес1</ADDR_TEXT>
<CODE>25</CODE>
<START>2011-06-24</START>
<STOP>2014-06-24</STOP>
</RRL_CASE>
</la>

в этот тег вложил для проверки парса, еще несколько блоков по структуре приведенной выше
написал код парсировки данного файла

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, XMLDOC, StdCtrls, ComObj;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var XML: TXMLDocument;
    i, j: Integer;
    Ex: Variant;
begin
 
  XML := TXMLDocument.Create(Self);  // создаем XML
  XML.LoadFromFile('1.xml');         // загружаем XML
  Ex := CreateOleObject('Excel.Application'); //создаем Excel
  Ex.Workbooks.Add; // создаем новую страницу
 
  for i := 0 to XML.ChildNodes.Nodes[1].ChildNodes.Nodes[1].ChildNodes.Count - 1 do  // пробегаемся по XML по ветке la
    Ex.Cells[1, i+1] := XML.ChildNodes[1].ChildNodes[1].ChildNodes[i].NodeName;      // вытаскиваем все названия тегов в этой ветке и записываем в 1 строчку в Excel
 
  for i := 0 to XML.ChildNodes.Nodes[1].ChildNodes.Count - 1 do // заходим в ветку la и начинаем оттуда считывать все блоки по очереди
    for j := 0 to XML.ChildNodes.Nodes[1].ChildNodes.Nodes[i].ChildNodes.Count - 1 do  // пробегаемся по всему la , заходим в каждый найденный блок и вытаскиваем все значения всех тегов
      Ex.Cells[i+2, j+1] := XML.ChildNodes[1].ChildNodes[i].ChildNodes[j].NodeValue;   // записываем значения
 
  Ex.Visible := True;  // показываем Excel
  Ex.Quit;             // выходим из Excel
 
  XML.Free;            // убиваем объект XML
end;
 
end.

получилось вот так

вот сама еще программа в архиве и сам xml файл, немного модифицированный, прошу отписать на счет вашего xml оригинала, как там ветки построены !!! Чтобы если что, исправить по быстрому вам прграмму

Удачи

Очень Вы в тему попали (огромное спасибо)
вот сам файлик: RRL1020201934917_120701.zip
я его сократил между тегами,

HTML5
1
2
3
    <RRL_CASE>
...
    </RRL_CASE>

т.к. он очень большой!
По поводу других веток, в самом файле присутствует только шапка (во вложенном файле ее можно увидеть)

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



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

04.08.2012, 20:01

Помогаю со студенческими работами здесь

Работа с текстом
Всем привет, у меня есть переменная, которая хранит текст.
Как только в этой переменной попадается…

Работа с текстом
Регулярными выражениями нужно разделить текст на предложения, предложения на слова и знаки…

Работа с текстом
Есть текст вида:

8% · New 53 of 639
или
0% · New 1 of 1012
или
0% · New 1023 of 90012

Мне…

Работа с текстом
Помогите мне написать методы для решения следующих целей. Дано сообщение:
а) Вывести из него…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

3



Я хочу экспортировать данные в excel из Delphi без необходимости иметь копию excel, возможно ли это?

N. B. CSV не подойдет.


1186  


8  

8 ответов:

Попробуйте zexmlss . Эта библиотека может создавать и загружать файлы формата excel 2003 XML. Поддержка объединенных ячеек, границ, вертикального и горизонтального выравнивания и др. Лицензия Zlib. Работайте с delphi 6, 7, 9-14 и lazarus.

Я считаю, что можно создавать документы MS Office в формате HTML. Вам не нужно открывать их в веб-браузере или что-нибудь еще, файл все еще может иметь расширение .xls и открыть в Excel, как обычно.

Я только что создал новую электронную таблицу и вставил числа 1-3 в первые три ячейки столбца A, и сохранил ее как HTML. Там была куча лишнего беспорядка, который, вероятно, не так уж и необходим. Я снял столько, сколько мог, вот что выглядит как минимум, чтобы произвести рабочая таблица.

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

<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>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!--[if gte mso 9]><xml>
 <x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name>Sheet1</x:Name>
    <x:WorksheetOptions>
     <x:Selected/>
     <x:Panes>
      <x:Pane>
       <x:Number>3</x:Number>
       <x:ActiveRow>3</x:ActiveRow>
      </x:Pane>
     </x:Panes>
     <x:ProtectContents>False</x:ProtectContents>
     <x:ProtectObjects>False</x:ProtectObjects>
     <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
 </x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>

<table x:str>
    <tr>
        <td x:num width=64>1</td>
    </tr>
    <tr>
        <td x:num>2</td>
    </tr>
    <tr>
        <td x:num>3</td>
    </tr>
</table>
</body>
</html>

OExport-XLSX / ODS native Delphi Import / export library

  • никакие внешние библиотеки dll не требуются
  • нет зависимости от установки Excel или Calc (нет OLE)
  • полная поддержка unicode даже для D7, D2007
  • Поддерживаемые типы ячеек: string, number, percent, formula, time, date, datetime

  • форматирование ячеек: ширина ячейки+высота, горизонтальное + вертикальное выравнивание, перенос текста, шрифт, цвет фона, границы
  • col / row span
  • испытано и работает под Delphi 2007 и XE2 32bit+64bit: должны быть совместимы со всеми D7 до XE2
  • Новая OFiller: заполнить в формате docx (для Word 2007), файлы odt (OpenOffice писатель), XLSX-файл (в Excel 2007), СОД (в OpenOffice Calc, в) шаблоны

Http://www.kluug.at/xlsx-ods-delphi.php

Лицензии МПЛ/GPL и LGPL три лицензии
Версия: MPL 1.1/GPL 2.0 / LGPL 2.1

SMExport from Scalabium (scalabium.com ) включает в себя множество форматов, включая формат Excel с установленным Excel или без него.

Библиотека TXLSFile V. 4. 0. и компоненты XLSExport

Мы успешно использовали с D2007, D2009 и D2010

Что такое TXLSFile

  TXLSFile is a Delphi library for reading and writing MS Excel 
  XLS files. It is based on direct reading and writing of files, 
  and works without OLE Automation with Microsoft Excel. 

  TXLSFile is  distributed  with  XLSExport  components  package. 
  XLSExport is a Delphi components package  for quick data 
  export  into  MS Excel file with  one line  of code.  

Http://sm-software.com

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

Excel4Delphi

Read, Write excel 2002/2003 XML (SpreadsheetML / XML Spreadsheet) library.

fork from https://github.com/Avemey/zexmlss

Exchamples

// Creating new workbook
var workBook: TZWorkBook;
...
workBook := TZWorkBook.Create();
try
  workBook.Sheets.Add('My sheet');
  workBook.Sheets[0].ColCount := 10;
  workBook.Sheets[0].RowCount := 10;
  workBook.Sheets[0].CellRef['A', 0].AsString := 'Hello';
  workBook.Sheets[0].RangeRef['A', 0, 'B', 2].Merge();
  workBook.SaveToFile('file.xlsx');
finally
  workBook.Free();
end
// Editing exists workbook
var workBook: TZWorkBook;
...
workBook := TZWorkBook.Create();
try
  workBook.LoadFromFile('file.xlsx');
  workBook.Sheets[0].CellRef['A', 0].AsString := 'Hello';
  workBook.Sheets[0].CellRef['A', 0].FontStyle := [fsBold];
  workBook.SaveToFile('file.xlsx');
finally
  workBook.Free();
end

I’m looking to export data to excel from Delphi without having to own a copy of excel, is this possible?

N.B. CSV will not do.

Jon Seigel's user avatar

Jon Seigel

12.2k8 gold badges57 silver badges92 bronze badges

asked Mar 22, 2010 at 14:44

AJM's user avatar

Try zexmlss. This library can create and load excel 2003 XML format files. Support merged cells, borders, vertical and horizontal alignment and other. Zlib license. Work with delphi 6, 7, 9-14 and lazarus.

answered Nov 7, 2010 at 20:01

Hikikomori's user avatar

HikikomoriHikikomori

1211 silver badge2 bronze badges

3

I believe it’s possible to create MS Office documents as HTML. You don’t need to open them in a web browser then or anything, the file can still have the extension .xls and open in Excel like normal.

I just created a new spreadsheet and stuck the numbers 1-3 in the first three cells of column A, and saved it as HTML. There was a bunch of extra mess that probably isn’t all necessary. I stripped out as much as I could, here’s what looks to be the bare minimum to produce a working spreadsheet.

Try creating a new text file with this as its contents, and save it with a .xls extension.

<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>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<!--[if gte mso 9]><xml>
 <x:ExcelWorkbook>
  <x:ExcelWorksheets>
   <x:ExcelWorksheet>
    <x:Name>Sheet1</x:Name>
    <x:WorksheetOptions>
     <x:Selected/>
     <x:Panes>
      <x:Pane>
       <x:Number>3</x:Number>
       <x:ActiveRow>3</x:ActiveRow>
      </x:Pane>
     </x:Panes>
     <x:ProtectContents>False</x:ProtectContents>
     <x:ProtectObjects>False</x:ProtectObjects>
     <x:ProtectScenarios>False</x:ProtectScenarios>
    </x:WorksheetOptions>
   </x:ExcelWorksheet>
  </x:ExcelWorksheets>
 </x:ExcelWorkbook>
</xml><![endif]-->
</head>
<body>

<table x:str>
    <tr>
        <td x:num width=64>1</td>
    </tr>
    <tr>
        <td x:num>2</td>
    </tr>
    <tr>
        <td x:num>3</td>
    </tr>
</table>
</body>
</html>

answered Mar 22, 2010 at 14:53

Matt Blaine's user avatar

Matt BlaineMatt Blaine

1,96614 silver badges22 bronze badges

2

oExport — XLSX/ODS native Delphi import/export library

  • no external dll libraries are required
  • no dependency on Excel or Calc installation (no OLE)
  • full unicode support even for D7, D2007
  • supported cell types: string, number, percent, formula, time, date, datetime
  • cell formatting: cell width+height, horizontal+vertical alignment, wrap text, font, background color, borders
  • col/row span
  • tested and working under Delphi 2007 and XE2 32bit+64bit: should be compatible with all D7 to XE2
  • NEW OFiller: fill DOCX (Word 2007), ODT (OpenOffice Writer), XLSX (Excel 2007), ODS (OpenOffice Calc) templates

http://www.kluug.at/xlsx-ods-delphi.php

licensed under a MPL/GPL/LGPL tri-license
Version: MPL 1.1/GPL 2.0/LGPL 2.1

answered Mar 14, 2012 at 1:46

Erwan's user avatar

ErwanErwan

2023 silver badges10 bronze badges

3

SMExport from Scalabium (scalabium.com) includes lots of formats, including Excel format with or without having Excel installed.

answered May 9, 2010 at 6:38

Rob McDonell's user avatar

Rob McDonellRob McDonell

1,3099 silver badges15 bronze badges

NativeExcel mentioned earlier is from Nika-Soft. Not free, but it works fine. I am using it now for over one year without problems. http://www.nika-soft.com/nativeexcel2/

answered May 9, 2010 at 9:03

Christian's user avatar

ChristianChristian

7037 silver badges15 bronze badges

TXLSFile library v.4.0. and XLSExport components

We’ve used successfully with D2007, D2009 & D2010

What is TXLSFile

  TXLSFile is a Delphi library for reading and writing MS Excel 
  XLS files. It is based on direct reading and writing of files, 
  and works without OLE Automation with Microsoft Excel. 

  TXLSFile is  distributed  with  XLSExport  components  package. 
  XLSExport is a Delphi components package  for quick data 
  export  into  MS Excel file with  one line  of code.  

http://sm-software.com

answered May 9, 2010 at 15:16

rhazell's user avatar

rhazellrhazell

2851 gold badge3 silver badges5 bronze badges

theree is a very simple way to achive this and is by use of a text file. Simply output the data, each field followed by a comma, followed by a carriage return. Save this file with a .CSV extension. This should still work on Excel; I use Open Officw these days

answered Dec 22, 2013 at 17:05

rmuirhead's user avatar

1

Понравилась статья? Поделить с друзьями:
  • Xml to excel with vba
  • Xml to excel javascript
  • Xml text to excel
  • Xml templates for word
  • Xml template for word