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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2010, 10:40   #1
armagedon_atyrau
Пользователь
 
Регистрация: 17.05.2010
Сообщений: 22
По умолчанию Проблема при создании xml

Здравствуйте Всем!!!
Пожалуйста помогите чем сможете разобраться!!!
Есть макрос который с xls xml файл

хочу получить в xml <field name="field_851_01_003_1">17.10.200 3</field>
код который делает: Print #outFile, "<field" & big & ">" & c2UTF8(ws.Cells(rn, cn).Value) & "</field>"

выдает ошибку в xml:

A name contained an invalid character. Error processing resource 'file:///C:/Users/user/Desktop/Data/Data.xml'. Line 6, Po...

"<field" name="field_851_01_004_2"">17.10.20 03</field>
-------^

А полный код :

Sub Export()
Dim rn, rm, rCnt As Integer
Dim cn, cCnt As Integer
Dim outFile As Integer
Dim myPath, big, sCnt As String
Dim ws, ws2 As Worksheet
Dim lastCell As Range

Set ws = ActiveSheet
Set ws2 = Sheets("Sheet1")
Set lastCell = ws.Cells.SpecialCells(xlCellTypeLas tCell)
rCnt = lastCell.Row
cCnt = lastCell.Column


myPath = ThisWorkbook.Path
outFile = FreeFile
Open myPath + "\Data.xml" For Output As #outFile


Print #outFile, "<?xml version=""1.0"" encoding=""UTF-8"" ?>"
Print #outFile, "<fno code=""851.00"" version=""11"" documentId=""100"" formatVersion=""1"">"


For rn = 3 To rCnt
If ws.Cells(rn, 1).Value = "" Then Exit For

Print #outFile, "<form name=""form_851_01"">"
Print #outFile, "<sheetGroup>"
Print #outFile, "<sheet name=""851_00_01"">"
'Print #outFile, "<rowNumber>" & rn & "</rowNumber>"
For cn = 1 To cCnt
'For rm = 1 To rCnt
big = ws2.Cells(cn, 1).Value
'sCnt = ws.Cells(2, cCnt).Value
'Print #outFile, "<field" & cn & ">" & ws.Cells(rn, cn).Value & "</field" & cn & ">"
Print #outFile, """<field""" & big & """>" & c2UTF8(ws.Cells(rn, cn).Value) & "</field>"
'</field" & " " & big & ">"
'print #outFile, "<Field"
'Print #outFile, "<>"
'Next rm
Next cn
Print #outFile, "</sheet>"
Print #outFile, "<sheet name=""851_00_02"">"
'Print #outFile, "<field" & cn & ">" & ws.Cells(rn, cn).Value & "</field" & cn & ">"
'Print #outFile, "<field" & cn & ">" & c2UTF8(ws.Cells(rn, cn).Value) & "</field" & cn & ">"

Print #outFile, "</sheet>"
Print #outFile, "</sheetGroup>"
Print #outFile, "</form>"

Next rn

Print #outFile, "</fno>"

Close #outFile
End Sub


Function c2UTF8(s As String)
c2UTF8 = ""
Dim k, j, ch, k1, k2, k3, m
For k = 1 To Len(s)
ch = Mid(s, k, 1)

j = CLng(AscW(ch))
If j < 0 Then j = 65536 + j
If j >= 128 Then
If j < 2048 Then

k1 = (Int(j / 64) + 128 + 64)
k2 = (j Mod 64 + 128)
c2UTF8 = c2UTF8 & Chr(k1)
c2UTF8 = c2UTF8 & Chr(k2)
Else

k1 = (Int(j / (64 * 64)) + 128 + 64 + 32)
m = j Mod (64 * 64)
k2 = (Int(m / 64) + 128)
k3 = (m Mod 64 + 128)
c2UTF8 = c2UTF8 & Chr(k1)
c2UTF8 = c2UTF8 & Chr(k2)
c2UTF8 = c2UTF8 & Chr(k3)
End If
Else
c2UTF8 = c2UTF8 & ch
End If
Next
End Function
armagedon_atyrau вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при создании файла (3CH) Livores Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 26.05.2010 17:01
Проблема при создании подсказки (ToolTip'а) Terazoid Win Api 0 31.03.2010 03:49
Проблема при создании компонента Levsha100 Компоненты Delphi 3 02.05.2009 12:05
Проблема при создании БД HAMMAN БД в Delphi 4 25.04.2008 08:44
проблема при создании отчета в QuickRep Алёна БД в Delphi 2 16.11.2007 11:01