Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2012, 10:22   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Восклицание Экспортирование из xls в xml(VBA)

Здравствуйте уважаемые форумчане.Я недавно столкнулся с такой проблемой как экспортирование данные.Суть вот в чем:у меня есть текстовый файл с данными,есть Excel-книга в которую я выгружаю эти данные.Задача состоит в том, чтобы получить xml-файл с такой структурой:
<?xml version="1.0" encoding="windows-1251" ?>
<СчетаПК ДатаФормирования="date" НомерДоговора="namber">
<ЗачислениеЗарплаты>
<Сотрудник Нпп="Счетчик">
<Фамилия>Данные</Фамилия>
<Имя>Данные</Имя>
<Отчество>Данные</Отчество>
<ЛицевойСчет>Данные</ЛицевойСчет>
<Сумма>Данные</Сумма>
</Сотрудник>
</СчетаПК>
Уже 2 недели ломаю голову пока ничего толкового не вышло,помогите пожалуйста.Заранее благодарю всем откликнувшимся.
manula вне форума Ответить с цитированием
Старый 16.02.2012, 11:11   #2
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Мой листинг:
....
'Описание переменных
sFile = "c:\shablon.txt"
iFile = FreeFile

Open sFile For Output As #iFile

Do While Not EOF(iFile)

Line Input #iFile, Strk
number = Mid(Strk, 10, 1)
family = Mid(Strk, 39, 20)
imya = Mid(Strk, 69, 20)
otch = Mid(Strk, 99, 20)
schet = Mid(Strk, 135, 21)
summ = Mid(Strk, 170, 7)

data = Date
title = "<?xml version=""1.0"" encoding= Windows-1251 ?>"

'Вставляю заголовок(title)
Print #iFile, Strk = "<СчетаПК ДатаФормирования=" & date &
"НомерДоговора= 123 >"
Print #iFile, Strk = "<ЗачислениеЗарплаты>"
Print #iFile, Strk = "<Сотрудник Нпп=" & number & ">"
Print #iFile, Strk = "<Фамилия>" & family & "</Фамилия>"
Print #iFile, Strk = "<Имя>" & imya & "</Имя>"
Print #iFile, Strk = "<Отчество>" & otch & "</Отчество>"
Print #iFile, Strk = "<ЛицевойСчет>" & schet & "</ЛицевойСчет>"
Print #iFile, Strk = "<Сумма>" & summ & "</Сумма>"
Print #iFile, Strk = "</Сотрудник>"
Print #iFile, Strk = "</ЗачислениеЗарплаты>"
Print #iFile, Strk = "</СчетаПК>"
Close #iFile
manula вне форума Ответить с цитированием
Старый 16.02.2012, 11:42   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Мой листинг:
И что, не работает?

Если хотите, чтобы мы подредактировали макрос - выложите свой файл Excel с кодом.
EducatedFool вне форума Ответить с цитированием
Старый 16.02.2012, 12:14   #4
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

При открытии в браузере выдает ошибку такого содержания:

Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку "Обновить"или повторите попытку позднее.

--------------------------------------------------------------------------------

Требуется строковый литерал, но не найдена открывающая кавычка. Ошибка при обработке ресурса ''file:///C:/...

<СчетаПК ДатаФормирования= 14.02.2012 НомерДоговора= 123...
Не судите меня строго я просто первый раз работаю со структурой xml-файлов
Вложения
Тип файла: rar Экспортирование.rar (10.0 Кб, 49 просмотров)

Последний раз редактировалось manula; 16.02.2012 в 12:27.
manula вне форума Ответить с цитированием
Старый 16.02.2012, 15:44   #5
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Если у кого нибудь имеются какие-то исходники или наработки по этой тематике,или вы знаете сайты где это предельно изложено,пишите,буду очень признателен.
manula вне форума Ответить с цитированием
Старый 16.02.2012, 16:07   #6
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Попробуй. По крайней мере не выдаёт ошибки:
Вложения
Тип файла: rar Экспортирование.rar (10.0 Кб, 69 просмотров)
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 16.02.2012, 16:33   #7
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Цитата:
Сообщение от Skif-F Посмотреть сообщение
Попробуй. По крайней мере не выдаёт ошибки:
По моему это моя же книга без изменений))я что-то открыв ее ничего не заметил в плане корректировки,а по поводу времени и источников,это да.
manula вне форума Ответить с цитированием
Старый 17.02.2012, 11:58   #8
Skif-F
Форумчанин
 
Регистрация: 24.03.2010
Сообщений: 349
По умолчанию

Странно. Вот тот файл, который нужен
Вложения
Тип файла: zip Экспорт из Excel в xml.zip (11.2 Кб, 111 просмотров)
Нет нерешаемых задач - есть недостаток времени и данных!
Skif-F вне форума Ответить с цитированием
Старый 20.02.2012, 23:20   #9
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

а можно еще такой вопрос в книге был цикл из 5 оборотов так сказать,а если я не знаб сколько у меня записей допустим,как в этом случае цикл будет выглядеть,и еще если данные будут не на этой же странице,а на другой,как так сделать?подскажите
manula вне форума Ответить с цитированием
Старый 21.02.2012, 00:43   #10
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

в новом файле не забываем добавить ссылку на MSXML2


Данные берутся с активного листа
Код:
Const strFilePath As String = "C:\TestXML.xml"
Sub ExtportToXML()
    Dim objDoc As MSXML2.DOMDocument
    Dim objNode As MSXML2.IXMLDOMNode
    Dim objRoot As MSXML2.IXMLDOMElement
    Dim objElem As MSXML2.IXMLDOMElement
    Dim ar As Variant
    Dim i As Integer
    Set objDoc = New DOMDocument
    objDoc.resolveExternals = True
    Set objNode = objDoc.createProcessingInstruction( _
        "xml", "version='1.0' encoding='windows-1251'")
    Set objNode = objDoc.InsertBefore(objNode, _
    objDoc.ChildNodes.Item(0))
    Set objRoot = objDoc.createElement("СчетаПК")
    Set objDoc.DocumentElement = objRoot
    objRoot.setAttribute "ДатаФормирования", "20.02.2012"
    objRoot.setAttribute "НомерДоговора", "123"
   i = 1
  Do
    Set objElem = objDoc.createElement("Сотрудник")
      objElem.setAttribute "Нпп", Cells(i, 1)
      objRoot.appendChild objElem
           Set objNode = objDoc.createElement("Фамилия")
            objNode.Text = Cells(i, 2)
            objElem.appendChild objNode
        Set objNode = objDoc.createElement("Имя")
            objNode.Text = Cells(i, 3)
            objElem.appendChild objNode
        Set objNode = objDoc.createElement("Отчество")
            objNode.Text = Cells(i, 4)
            objElem.appendChild objNode
      Set objNode = objDoc.createElement("ЛицевойСчет")
            objNode.Text = Cells(i, 5)
            objElem.appendChild objNode
      Set objNode = objDoc.createElement("Сумма")
            objNode.Text = Cells(i, 6)
            objElem.appendChild objNode
      i = i + 1
 Loop Until Cells(i, 1) = ""
    objDoc.Save strFilePath
End Sub
Вложения
Тип файла: rar Экспорт из Excel в xml.rar (28.3 Кб, 173 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
xml to xls, xlsx Diego__ Microsoft Office Excel 4 10.12.2010 10:42
XLS converter XML edition Microsoft Office Excel 1 22.09.2010 19:32
Сonvert из .XML в .CSV или .XLS edition Microsoft Office Excel 1 20.07.2010 21:43
Экспорт xls на xml armagedon_atyrau Microsoft Office Excel 9 29.06.2010 15:52
экспорт из xls в xml для excell 2000 zzz007 Microsoft Office Excel 0 20.08.2009 22:47