Как создать файл excel в xml

У меня есть файл excel со структурой формы. Мне нужна эта структура формы excel sheert, которая преобразуется в xml. Например, лист excel имеет следующую структуру.

Student Name ........... Age...... Roll No ......... --------------------------------- | sn | Subject | Marks |Total | | | |---------| | | | |Max |Obt.| | --------------------------------- | 1 | maths | 100| 85 | 85 | --------------------------------- | 2 | Eng | 100| 85 | 85 | --------------------------------- | 3 | lang2 | 100| 85 | 85 | --------------------------------- | 4 | Science | 100| 85 | 85 | --------------------------------- ------------ Total marks: 340 |Grade| A | ------------ 

В таблице есть некоторые данные и метки. Для этого мне нужен xml-формат. Кто-нибудь может помочь?

Заранее спасибо.

Eshwer

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

Но без такой функции быстрым и грязным способом было бы построить узлы XML в электронной таблице с конкатенацией. Например, например: ="<"&A1&">"&A2&"</"&A1&">" .

Он будет загрязнять вашу таблицу с помощью экспорта, но он будет работать довольно быстро и позволит вам добавлять данные или столбцы и принимать их во внимание без боли (я уже сделал это).

В зависимости от того, что вы хотите сделать, и версии Excel, которую вы используете, вы можете:

или использовать этот VBA:

 Attribute VB_Name = "XL_to_XML" Sub MakeXML() ' create an XML file from an Excel table Dim MyRow As Integer, MyCol As Integer, Temp As String, YesNo As Variant, DefFolder As String Dim XMLFileName As String, XMLRecSetName As String, MyLF As String, RTC1 As Integer Dim RangeOne As String, RangeTwo As String, Tt As String, FldName(99) As String MyLF = Chr(10) & Chr(13) ' a line feed command DefFolder = "C:\" 'change this to the location of saved XML files YesNo = MsgBox("This procedure requires the following data:" & MyLF _ & "1 A filename for the XML file" & MyLF _ & "2 A groupname for an XML record" & MyLF _ & "3 A cellrange containing fieldnames (col titles)" & MyLF _ & "4 A cellrange containing the data table" & MyLF _ & "Are you ready to proceed?", vbQuestion + vbYesNo, "MakeXML CiM") If YesNo = vbNo Then Debug.Print "User aborted with 'No'" Exit Sub End If XMLFileName = FillSpaces(InputBox("1. Enter the name of the XML file:", "MakeXML CiM", "xl_xml_data")) If Right(XMLFileName, 4) <> ".xml" Then XMLFileName = XMLFileName & ".xml" End If XMLRecSetName = FillSpaces(InputBox("2. Enter an identifying name of a record:", "MakeXML CiM", "record")) RangeOne = InputBox("3. Enter the range of cells containing the field names (or column titles):", "MakeXML CiM", "A3:D3") If MyRng(RangeOne, 1) <> MyRng(RangeOne, 2) Then MsgBox "Error: names must be on a single row" & MyLF & "Procedure STOPPED", vbOKOnly + vbCritical, "MakeXML CiM" Exit Sub End If MyRow = MyRng(RangeOne, 1) For MyCol = MyRng(RangeOne, 3) To MyRng(RangeOne, 4) If Len(Cells(MyRow, MyCol).Value) = 0 Then MsgBox "Error: names range contains blank cell" & MyLF & "Procedure STOPPED", vbOKOnly + vbCritical, "MakeXML CiM" Exit Sub End If FldName(MyCol - MyRng(RangeOne, 3)) = FillSpaces(Cells(MyRow, MyCol).Value) Next MyCol RangeTwo = InputBox("4. Enter the range of cells containing the data table:", "MakeXML CiM", "A4:D8") If MyRng(RangeOne, 4) - MyRng(RangeOne, 3) <> MyRng(RangeTwo, 4) - MyRng(RangeTwo, 3) Then MsgBox "Error: number of field names <> data columns" & MyLF & "Procedure STOPPED", vbOKOnly + vbCritical, "MakeXML CiM" Exit Sub End If RTC1 = MyRng(RangeTwo, 3) If InStr(1, XMLFileName, ":\") = 0 Then XMLFileName = DefFolder & XMLFileName End If Open XMLFileName For Output As #1 Print #1, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "ISO-8859-1" & Chr(34) & "?>" Print #1, "<meadinkent>" For MyRow = MyRng(RangeTwo, 1) To MyRng(RangeTwo, 2) Print #1, "<" & XMLRecSetName & ">" For MyCol = RTC1 To MyRng(RangeTwo, 4) ' the next line uses the FormChk function to format dates and numbers Print #1, "<" & FldName(MyCol - RTC1) & ">" & RemoveAmpersands(FormChk(MyRow, MyCol)) & "</" & FldName(MyCol - RTC1) & ">" ' the next line does not apply any formatting ' Print #1, "<" & FldName(MyCol - RTC1) & ">" & RemoveAmpersands(Cells(MyRow, MyCol).Value) & "</" & FldName(MyCol - RTC1) & ">" Next MyCol Print #1, "</" & XMLRecSetName & ">" Next MyRow Print #1, "</meadinkent>" Close #1 MsgBox XMLFileName & " created." & MyLF & "Process finished", vbOKOnly + vbInformation, "MakeXML CiM" Debug.Print XMLFileName & " saved" End Sub Function MyRng(MyRangeAsText As String, MyItem As Integer) As Integer ' analyse a range, where MyItem represents 1=TR, 2=BR, 3=LHC, 4=RHC Dim UserRange As Range Set UserRange = Range(MyRangeAsText) Select Case MyItem Case 1 MyRng = UserRange.Row Case 2 MyRng = UserRange.Row + UserRange.Rows.Count - 1 Case 3 MyRng = UserRange.Column Case 4 MyRng = UserRange.Columns(UserRange.Columns.Count).Column End Select Exit Function End Function Function FillSpaces(AnyStr As String) As String ' remove any spaces and replace with underscore character Dim MyPos As Integer MyPos = InStr(1, AnyStr, " ") Do While MyPos > 0 Mid(AnyStr, MyPos, 1) = "_" MyPos = InStr(1, AnyStr, " ") Loop FillSpaces = LCase(AnyStr) End Function Function FormChk(RowNum As Integer, ColNum As Integer) As String ' formats numeric and date cell values to comma 000's and DD MMM YY FormChk = Cells(RowNum, ColNum).Value If IsNumeric(Cells(RowNum, ColNum).Value) Then FormChk = Format(Cells(RowNum, ColNum).Value, "#,##0 ;(#,##0)") End If If IsDate(Cells(RowNum, ColNum).Value) Then FormChk = Format(Cells(RowNum, ColNum).Value, "dd mmm yy") End If End Function Function RemoveAmpersands(AnyStr As String) As String Dim MyPos As Integer ' replace Ampersands (&) with plus symbols (+) MyPos = InStr(1, AnyStr, "&") Do While MyPos > 0 Mid(AnyStr, MyPos, 1) = "+" MyPos = InStr(1, AnyStr, "&") Loop RemoveAmpersands = AnyStr End Function 

Найдено из: http://www.meadinkent.co.uk/xl_xml1.htm

Надеюсь, поможет,

Как сказал JMax, у вас есть встроенные функции для этого. Прежде всего, вам нужно написать определение схемы XML, основанное на вашем расширенном листе Excel. После успешного создания xsd-файла вам необходимо выполнить следующие шаги: 1) Нажмите «Файл» (я предполагаю, что у вас есть Excel 2007 или выше) 2) Нажмите «Параметры» 3) Из всплывающего окна «Параметры Excel» Нажмите «Настроить ленту». 4) Проверьте «Разработчик» и нажмите «ОК». 5) Теперь вы получите вкладку разработчика в своем excel.Click на этой вкладке. 6) Нажмите «Источник» и найдите файл xsd. 7) После этого вы должны сопоставить свои элементы либо методом перетаскивания, либо путем выбора столбцов и элемента карты.

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

  • Как преобразовать xls-файл в xml?
  • Создание Excel с C # - Как сделать диагональные границы?
  • Как распаковать "Защищенный паролем файл xlsx" с помощью java
  • Отправка мыльного XML с помощью VBA
  • Преобразование xml-файла в excel на Java
  • Удаленный узел MSXML не работает как ожидается
  • Не удается получить текст с узла в XML
  • Настройка ленты Excel: динамическое меню, getContent и OnAction
  • Тип catch при проверке XML
  • Добавление SQL Server? до и после значения ячейки при преобразовании из XML
  • Быстрое преобразование XML в Excel
  • Interesting Posts

    Я пытаюсь создать формулу в excel, чтобы выбрать нижние 5 значений

    Если в поле есть определенное слово, то присвойте соответствующее значение из таблицы "legend"

    Ошибка с выбором диапазона

    экспорт данных datagridview для Excel в vb.net

    поиск определенного столбца и выполнение сортировки и фильтрации с использованием excel vba macos

    Переменная Excel (одно значение) для заполнения многозначного поля доступа к базе данных

    Excel: круговой расчет не будет сжиматься, если вход в определенный пространственный макет

    Поиск точного соответствия строки в строке excel с помощью VBA Macro

    Почему моя функция работает на Windows, но не на OS X?

    Вставить в заблокированные ячейки Excel

    Скопируйте и вставьте значение ячейки из excel в word, не меняя формат

    Как включить функцию автоматического завершения в поле со списком, программируя в VBA?

    Функция IfError в VBA не возвращает 0

    Простая петля VBA с Solver

    Создание дерева папок с абсолютными каталогами> 256 символов?

    Давайте будем гением компьютера.