powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как считать данные из ячейки из Excel таблицы через С++
6 сообщений из 6, страница 1 из 1
Как считать данные из ячейки из Excel таблицы через С++
    #38804132
svandrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток
Прошу помощи
Есть такой фрагмент файла XML

<Data ss:Type="Number">float</Data>

Как мне отсюда считать значения параметра float? Должна же быть некая простая функция

Вот собственно, как я до этого дошел.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
TiXmlDocument xml_file("InputData.xml");             //Открытие входного файла
xml_file.LoadFile();                                          //Открываем его для чтения
TiXmlElement *xml_Worksheet, *xml_Table, *xml_Row, *xml_Cell, *xml_CellData;  // определяем переменные типа xml
xml_Worksheet = xml_file.RootElement()->FirstChildElement(); // В дереве Worksheet заходим в дочернюю ветку  
int i,j;
for (i=0;i<4;i++)                                                 
{ 
    xml_Worksheet = xml_Worksheet->NextSiblingElement();     // В цикле прыгаем с ветки на ветку, пока не найдем нужную
	if (i==3)                                                                 // Нашли  
	         { 
				xml_Table=xml_Worksheet->FirstChildElement();       // Это наша таблица, теперь находим ее дочерние ветки
				xml_Row = xml_Table->FirstChildElement();           // Каждая ветка - это строка таблицы
	  
				for(j=2;j<12;j++)                              //Прыгаем по строкам таблицы
								{
								xml_Row = xml_Row->NextSiblingElement();      //Собственно "прыжок"
								xml_Row->Print(  stdout, 1 );                 // И вывод текущей строки
								xml_Cell = xml_Row->FirstChildElement();
								xml_CellData = xml_Cell->FirstChildElement();
                                    //И теперь вот тут из xml_CellData мне нужно достать значение. КАК?

                                                               }
                }
}



Вт собственно XML FILE
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <Created>2006-09-16T00:00:00Z</Created>
  <LastSaved>2006-09-16T00:00:00Z</LastSaved>
  <Version>15.00</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <AllowPNG/>
  <RemovePersonalInformation/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>4620</WindowHeight>
  <WindowWidth>15345</WindowWidth>
  <WindowTopX>0</WindowTopX>
  <WindowTopY>0</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="s62">
   <NumberFormat/>
  </Style>
 </Styles>
 <Worksheet ss:Name="Лист1">
  <Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="11" x:FullColumns="1"
   x:FullRows="1" ss:DefaultRowHeight="15">
   <Row ss:AutoFitHeight="0">
    <Cell><Data ss:Type="String">Time</Data></Cell>
    <Cell><Data ss:Type="String">Current_A</Data></Cell>
    <Cell><Data ss:Type="String">Current_B</Data></Cell>
    <Cell><Data ss:Type="String">Сurrent_C</Data></Cell>
    <Cell><Data ss:Type="String">Voltage_A</Data></Cell>
    <Cell><Data ss:Type="String">Voltage_B</Data></Cell>
    <Cell><Data ss:Type="String">Voltage_C</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">1</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">5</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">220</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">270</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">310</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">2</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">5</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">220</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">270</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">310</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">3</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">5</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">220</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">270</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">310</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">4</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">5</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">220</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">270</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">310</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">5</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">5</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">220</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">270</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">310</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">6</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">6</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">9</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">11</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">230</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">280</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">320</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">7</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">6</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">9</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">11</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">230</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">280</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">320</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">6</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">9</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">11</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">230</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">280</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">320</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">9</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">7</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">12</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">240</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">290</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">330</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0">
    <Cell ss:StyleID="s62"><Data ss:Type="Number">10</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">8</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">11</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">13</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">241</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">291</Data></Cell>
    <Cell ss:StyleID="s62"><Data ss:Type="Number">331</Data></Cell>
   </Row>
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Header x:Margin="0.3"/>
    <Footer x:Margin="0.3"/>
    <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
   </PageSetup>
   <Unsynced/>
   <Selected/>
   <Panes>
    <Pane>
     <Number>3</Number>
     <ActiveRow>10</ActiveRow>
     <ActiveCol>7</ActiveCol>
    </Pane>
   </Panes>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
 </Worksheet>
</Workbook>
...
Рейтинг: 0 / 0
Как считать данные из ячейки из Excel таблицы через С++
    #38804211
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем Вы пользуетесь, я не понял, поэтому вот несколько вариантов
Код: sql
1.
2.
3.
4.
xml_CellData->GetFirstChild>>Node<<()->nodeValue;
xml_CellData->text
xml_CellData->xml;
xml_CellData->childNode(0)->nodeValue;
...
Рейтинг: 0 / 0
Как считать данные из ячейки из Excel таблицы через С++
    #38804213
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Код: plaintext
1.
xml_CellData->GetFirstChildNode()->nodeValue
...
Рейтинг: 0 / 0
Как считать данные из ячейки из Excel таблицы через С++
    #38805363
svandrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пользуюсь С++ и подключенной библиотекой Tinyxml
Порпробовал предложенные варианты - постоянно выдает ошибку типа "GetFirstChildNode: не является членом "TiXmlElement" ", или "childNode: не является членом "TiXmlElement" " соответственно.

Может мне как-то переконвертить xml_CellData из типа TiXmlElement в другой тип?
...
Рейтинг: 0 / 0
Как считать данные из ячейки из Excel таблицы через С++
    #38805404
svandrive
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
svandrive,
Спасибо, нашел решение сам)))

Код: plaintext
1.
 str1 = xml_CellData->GetText(); 



Правда вышло не в числовом, а текстовом формате, но мне подходит))
...
Рейтинг: 0 / 0
Как считать данные из ячейки из Excel таблицы через С++
    #38805571
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svandriveне в числовом, а текстовом форматеТолько так. Дальше преобразовывайте сами
svandriveподключенной библиотекой TinyxmlНу так читайте его документацию
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Как считать данные из ячейки из Excel таблицы через С++
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]