﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Программирование / VBA  / Экспорт данных листов excel в xml / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sat, 10 Jan 2009 07:25:21 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>to Bazile:&lt;br&gt;[quote]&lt;br&gt;1) В Windows есть программа для работы с ftp с командной строки. У нее есть удобный параметр -s позволяющий подать на вход команды из внешнего файла. В первой строки пишем имя, во второй пароль, затем нужные команды по загрузке файла и, в конце, команда bye для отключения. Запустить внешнуюю программу из Excel не должно составить труда.&lt;br&gt;[/quote]&lt;br&gt;&lt;br&gt;А как передать инструкцию OPEN?&lt;br&gt;&lt;br&gt;С уважением,</description><pubDate>Tue, 29 May 2007 18:12:30 GMT</pubDate><dc:creator>babken76</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>Bazile, ты как всегда прав. Не внимательно прочел. Не могу только его найти на этом сайте.&lt;br&gt; &lt;br&gt;С уважением,</description><pubDate>Thu, 08 Feb 2007 18:06:21 GMT</pubDate><dc:creator>babken76</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>[quote][b]babken76 (08.02.2007)[/b][hr]нашел пример: http://www.motobit.com/tips/detpg_uploadvbaie/&lt;BR&gt;Попробовал на localhost &lt;BR&gt;Call UploadFile("http://localhost", "C:\1.xml")&lt;BR&gt;вроде все отрабатывает без ошибок, но файл не копируется.[/quote]&lt;/P&gt;&lt;P&gt;А у тебя на localhost есть скрипт обрабатывающий upload? Без него работать не будет.</description><pubDate>Thu, 08 Feb 2007 17:53:07 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>Спасибо за совет. 1 вариант будет запасным (очень трудно "уломать" заказчика поднять ftp сервер).&lt;br&gt;нашел пример: http://www.motobit.com/tips/detpg_uploadvbaie/&lt;br&gt;Попробовал на localhost &lt;br&gt;Call UploadFile("http://localhost", "C:\1.xml")&lt;br&gt;вроде все отрабатывает без ошибок, но файл не копируется.&lt;br&gt;&lt;br&gt;С уважением,</description><pubDate>Thu, 08 Feb 2007 17:29:10 GMT</pubDate><dc:creator>babken76</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>Можно еще два способа попробовать:&lt;/P&gt;&lt;P&gt;1) В Windows есть программа для работы с ftp с командной строки. У нее есть удобный параметр -s позволяющий подать на вход команды из внешнего файла. В первой строки пишем имя, во второй пароль, затем нужные команды по загрузке файла и, в конце, команда bye для отключения. Запустить внешнуюю программу из Excel не должно составить труда.&lt;/P&gt;&lt;P&gt;2) Организовать на веб-сервере страницу для upload-а файлов и обращаться к ней из Excel с помощью стандартного компонента XmlHttpRequest.&lt;/P&gt;&lt;P&gt;На мой взгляд первый способ проще всего. Его недостаток в невозможности проконтролировать успех/неуспех операции по загрузке файла.</description><pubDate>Thu, 08 Feb 2007 16:52:32 GMT</pubDate><dc:creator>bazile</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>Спасибо за отклик. Буду искать.&lt;br&gt;&lt;br&gt;С уважением,</description><pubDate>Thu, 08 Feb 2007 15:50:39 GMT</pubDate><dc:creator>babken76</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>Ну, если в API есть функция загрузки URLDownloadToFile, должна быть и функция выгрузки. Я бы там поискал. Лежит она наверняка в urlmon.dll.</description><pubDate>Thu, 08 Feb 2007 14:06:25 GMT</pubDate><dc:creator>Johny Walker</dc:creator></item><item><title>RE: Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>Конечно я мог бы положить этот файл на сервер через подключение сетевого диска (API), но зная локальную сеть предприятия, где это будет работать, думаю, что это не приемлимо. Использование active-x ftp компонент сторонних производителей известных в сети, тоже не подойдет.&lt;br&gt;&lt;br&gt;С уважением,</description><pubDate>Tue, 06 Feb 2007 19:25:19 GMT</pubDate><dc:creator>babken76</dc:creator></item><item><title>Экспорт данных листов excel в xml</title><link>http://www.relib.com/forums/Topic910481-11-1.aspx</link><description>В своем приложении я экспортирую данные листов Excel в xml файл. &lt;br&gt;Делаю я это примерно так:&lt;br&gt;&lt;br&gt;[code]&lt;br&gt;Sub send_to_xml_Click()&lt;br&gt;Dim strConnectString$, strSQL$, strHeading$&lt;br&gt;Dim cnn As ADODB.Connection&lt;br&gt;Dim rs As Recordset&lt;br&gt;&lt;br&gt;'листаем книгу&lt;br&gt;For i = 1 To ThisWorkbook.Sheets.Count&lt;br&gt;'    For Each f In Worksheets(i).Range(Module3.scan_diap)&lt;br&gt;    ''''''''''''''''''''''''''и превращаем данные в record set&lt;br&gt;      NameDir = ThisWorkbook.Path &amp; "\"&lt;br&gt;      strConnectString = "Provider=MSDASQL.1;Persist Security Info=True;" &amp; _&lt;br&gt;            "Data Source = Файлы Excel;Initial Catalog=" &amp; NameDir&lt;br&gt;    &lt;br&gt;      'strConnectString = "Provider=Microsoft.Jet.OLEDB.3.51;" &amp; _&lt;br&gt;        "Persist Security Info=False;" &amp; _&lt;br&gt;         "Data Source=C:\vb-db\xmltest.mdb"&lt;br&gt;         'scan_diap&lt;br&gt;      strSQL = "SELECT * FROM [" &amp; Worksheets(i).Name &amp; "$" &amp; Module3.scan_diap &amp; _&lt;br&gt;      "] IN '" &amp; ThisWorkbook.FullName &amp; "' [Excel 5.0;HDR=NO;IMEX=2];"&lt;br&gt;&lt;br&gt;      strHeading$ = "preds"&lt;br&gt;      Set cnn = New ADODB.Connection&lt;br&gt;      Set rs = New ADODB.Recordset&lt;br&gt;      cnn.Open strConnectString$   ' устанавливаем связь&lt;br&gt;      Set rs = cnn.Execute(strSQL) ' создаем Recordset&lt;br&gt;      Call ExportXML(rs, strHeading$, strCode, "d:\file1.xml") 'грузим в xml&lt;br&gt;'    Next f&lt;br&gt;Next i&lt;br&gt;&lt;br&gt;End Sub&lt;br&gt;Public Sub ExportXML(rs As Recordset, strHeading$, strCode, FileName$) '&lt;br&gt;   &lt;br&gt;   ' Экспорт таблицы RecordSet в XML файл&lt;br&gt;   Dim xmlDoc As DOMDocument&lt;br&gt;   &lt;br&gt;   ' Cоздаем XMLDOM-объект&lt;br&gt;   Set xmlDoc = RecordsetToXMLDOM(rs, strHeading$, strCode) '&lt;br&gt;   ' выводим его в виде отдельного файла&lt;br&gt;   xmlDoc.Save FileName$&lt;br&gt;End Sub&lt;br&gt;Public Function RecordsetToXMLDOM(rs As Recordset, strHeading$, strCode) As DOMDocument '&lt;br&gt;   '&lt;br&gt;   ' Преобразование Recordset в DOMDocument&lt;br&gt;   '&lt;br&gt;   Dim fldField As Field&lt;br&gt;   Dim xmlDoc As DOMDocument&lt;br&gt;   Dim xmlFields As IXMLDOMElement&lt;br&gt;   Dim xmlField As IXMLDOMElement&lt;br&gt;   Dim i&amp;&lt;br&gt;&lt;br&gt;   ' создание экземпляра объекта&lt;br&gt;   Set xmlDoc = CreateObject("Microsoft.XMLDOM")    ' New DOMDocument&lt;br&gt;   ' записываем XML-константу объекта&lt;br&gt;   xmlDoc.loadXML "&lt;?xml version=""1.0"" encoding=""windows-1251"" ?&gt;" + _&lt;br&gt;    Replace("&lt;" + strHeading + "/&gt;", " ", "_")&lt;br&gt;'      Replace("&lt;" + strHeading + "/&gt;", " ", "_") &lt;br&gt;&lt;br&gt;   With rs&lt;br&gt;      ' Вывод содержимого полей таблицы&lt;br&gt;      .MoveFirst: i = 1&lt;br&gt;       Do Until .EOF&lt;br&gt;          &lt;br&gt;          ' создание нового узла&lt;br&gt;          Set xmlFields = xmlCode.documentElement.appendChild _&lt;br&gt;            (xmlDoc.createElement("OneRow" + LTrim(Str(i))))&lt;br&gt;&lt;br&gt;          For Each fldField In rs.Fields   ' запись полей записи&lt;br&gt;               Set xmlField = xmlFields.appendChild( _&lt;br&gt;                xmlDoc.createElement(Replace(fldField.Name, " ", "_")))&lt;br&gt;                If IsNull(fldField.Value) = False Then&lt;br&gt;                    xmlField.Text = fldField.Value&lt;br&gt;                End If&lt;br&gt;          Next&lt;br&gt;         .MoveNext   ' к следующей записи набора&lt;br&gt;          i = i + 1&lt;br&gt;      Loop&lt;br&gt;   End With&lt;br&gt;   Set RecordsetToXMLDOM = xmlDoc   ' возвращаем созданный объект&lt;br&gt;End Function&lt;br&gt;&lt;br&gt;[/code]&lt;br&gt;Полученный xml  я предполагаю использовать для web отображения данных. Заставлять пользователя вручную копировать файл из локальной fs на сервер не есть хорошо. Очевидно, что метод xmlDoc.Save FileName$ не сработает, если я вместо локального пути укажу url удаленного web-сервера. Как решить эту проблему?&lt;br&gt;&lt;br&gt;С уважением,&lt;br&gt;</description><pubDate>Tue, 06 Feb 2007 18:36:02 GMT</pubDate><dc:creator>babken76</dc:creator></item></channel></rss>