Ниже приведен откомментированный пример скрипта загрузки рабочей книги Excel: 001'Так можно и нужно анализировать ячейки рабочей книги Excel.
002'WorkBook - объект рабочей книги.
003
004'Фактически здесь написано: если на листе "Лист 1" в ячейке D13 содержится значение,
005'отличное от "Форма 160/128q", то это не "наша" рабочая книга, ее не надо обрабатывать.
006
007if WorkBook.WorkSheets("Лист 1").Range("D13").Value <> "Форма 160/128q" then
008 'Текстовый файл не признан "своим".
009 InvalidData = True
010else
011 'Следите за отступами.
012
013 Message("Анализируем файл.") 'Сообщение пользователю в протокол загрузки.
014
015 '1. Создание корневого элемента REPORTS
016 set xml.documentElement = xml.createElement("REPORTS")
017
018 '2. Создание элемента-отчета. Повторять столько раз, сколько нужно отчетов.
019 with xml.documentElement.appendChild(xml.createElement("REPORT"))
020
021 '3. Атрибуты отчета
022
023 .appendChild(xml.createElement("AGENT")).appendChild(xml.createTextNode("Мнемокод контрагента"))
024 .appendChild(xml.createElement("FORM")).appendChild(xml.createTextNode("Мнемокод формы"))
025 .appendChild(xml.createElement("BDATE")).appendChild(xml.createTextNode("Дата в формете YYYY-MM-DD"))
026 .appendChild(xml.createElement("NOTE")).appendChild(xml.createTextNode("Примечание!!!"))
027 .appendChild(xml.createElement("KIND")).appendChild(xml.createTextNode("0")) '0-первичный, 1-сводный
028
029 'Также можно установить дополнительные атрибуты отчета:
030 '.appendChild(xml.createElement("CATALOG")).appendChild(xml.createTextNode("Наименование каталога"))
031 '.appendChild(xml.createElement("CHECKED")).appendChild(xml.createTextNode("1"))
032 '.appendChild(xml.createElement("STATE")).appendChild(xml.createTextNode("2"))
033 '.appendChild(xml.createElement("SENT")).appendChild(xml.createTextNode("1"))
034
035 '4. Список подотчетов
036 with .appendChild(xml.createElement("SUBREPORTS"))
037
038 '5. Главный подотчет (без мнемокода)
039 with .appendChild(xml.createElement("SUBREPORT"))
040
041 '6. Список значений
042 with .appendChild(xml.createElement("VALUES"))
043
044 'Создать столько значений, сколько нужно.
045 '7. Значение числового показателя
046 with .appendChild(xml.createElement("VALUE"))
047 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод числового показателя"))
048 .appendChild(xml.createElement("NVAL")).appendChild(xml.createTextNode("100.10"))
049 end with
050
051 '8. Значение строкового показателя
052 with .appendChild(xml.createElement("VALUE"))
053 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод строкового показателя"))
054 .appendChild(xml.createElement("SVAL")).appendChild(xml.createTextNode("Строковое значение"))
055 end with
056
057 '9. Значение показателя типа "дата".
058 with .appendChild(xml.createElement("VALUE"))
059 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод показателя типа дата"))
060 .appendChild(xml.createElement("DVAL")).appendChild(xml.createTextNode("2020-01-01"))
061 end with
062
063 end with
064
065 '10. Таблицы показателей - если редакция содержит таблицы показателей.
066 with .appendChild(xml.createElement("TABLES"))
067
068 '11. Таблица. Повторять столько раз, сколько нужно таблиц.
069 with .appendChild(xml.createElement("TABLE"))
070
071 '12. Наименование таблицы
072 .appendChild(xml.createElement("NAME")).appendChild(xml.createTextNode("Наименование таблицы"))
073
074 '13. Строки таблицы
075 with .appendChild(xml.createElement("ROWS"))
076
077 '14. Строка таблицы
078 with .appendChild(xml.createElement("ROW"))
079
080 '15. Значение строкового показателя
081 with .appendChild(xml.createElement("VALUE"))
082 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Показатель в составе талицы"))
083 .appendChild(xml.createElement("SVAL")).appendChild(xml.createTextNode("Строковое значение"))
084 end with
085
086 with .appendChild(xml.createElement("VALUE"))
087 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Другой показатель в составе талицы"))
088 .appendChild(xml.createElement("SVAL")).appendChild(xml.createTextNode("Строковое значение"))
089 end with
090
091 end with
092
093 '16. Строка таблицы
094 with .appendChild(xml.createElement("ROW"))
095
096 '17. Значение строкового показателя
097 with .appendChild(xml.createElement("VALUE"))
098 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Показатель в составе талицы"))
099 .appendChild(xml.createElement("SVAL")).appendChild(xml.createTextNode("Строковое значение"))
100 end with
101
102 with .appendChild(xml.createElement("VALUE"))
103 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Другой показатель в составе талицы"))
104 .appendChild(xml.createElement("SVAL")).appendChild(xml.createTextNode("Строковое значение"))
105 end with
106
107 end with
108
109 end with
110
111 end with
112
113 end with
114
115 end with
116
117 '18. Подотчет. Повторять столько раз, сколько нужно подотчетов.
118 with .appendChild(xml.createElement("SUBREPORT"))
119
120 '19. Мнемокод разреза подотчета
121 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод разреза"))
122
123 '20. Список занчений
124 with .appendChild(xml.createElement("VALUES"))
125
126 'Создать столько значений, сколько нужно.
127 '21. Значение числового показателя
128 with .appendChild(xml.createElement("VALUE"))
129 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод числового показателя"))
130 .appendChild(xml.createElement("NVAL")).appendChild(xml.createTextNode("100.10"))
131 end with
132
133 '22. Значение строкового показателя
134 with .appendChild(xml.createElement("VALUE"))
135 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод строкового показателя"))
136 .appendChild(xml.createElement("SVAL")).appendChild(xml.createTextNode("Строковое значение"))
137 end with
138
139 '23. Значение показателя типа "дата".
140 with .appendChild(xml.createElement("VALUE"))
141 .appendChild(xml.createElement("CODE")).appendChild(xml.createTextNode("Мнемокод показателя типа дата"))
142 .appendChild(xml.createElement("DVAL")).appendChild(xml.createTextNode("2020-01-01"))
143 end with
144
145 end with
146
147 'Создать таблицы, если они нужны.
148
149 end with
150
151 end with
152 end with
153end if
|