Перейти к содержанию
Fire Monkey от А до Я
  • 0

Неказистый файл базы данных


Akromd

Вопрос

Добрый день! Передо мной стоит задача открыть файл, содержащий таблицу с данными и их как то использовать. Проблема в том, что данный файл формируется на сайте очень интересным способом (как именно понятия не имею), но в результате на выходе есть некий XLS-файл, который в принципе открывается excel-ем, но при этом ругается, что он как бы битый. В итоге путем переименования расширения было найдено, что это xml-файл.

Это предисловие...

В общем с помощью делфи никак не могу открыть этот файл и считать с него данные, т.к. если его открывать как xml-файл, то там вылазить ошибка не соответствия head и meta. Как Excel файл открыть тоже не получилось (пробывал через firedac и ODBU драйвер).

Может кто поможет советом? Через что открыть и собственно как считать данные...

P.s. Пример файла прикрепить не удалось...поэтому только так:

<html>
<head><meta HTTP-EQUIV="Content-type" CONTENT="text/html; charset=utf-8">

<style>
	{mso-displayed-decimal-separator:"\,";
	mso-displayed-thousand-separator:" ";}
@page
	{margin:1.0in .75in 1.0in .75in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;}
tr
	{mso-height-source:auto;}
col
	{mso-width-source:auto;}
br
	{mso-data-placement:same-cell;}
table.xlTable
{
	empty-cells: show;
	border:thin outset gray;
	border-collapse:collapse;
	white-space:normal;
	margin: auto;
}
table.xlTable td
{
	text-align: right;
	border:thin inset gray;
}
table.xlTable th
{
	background-color: #EAEAEA;
	border:thin inset gray;
}
.style0
	{mso-number-format:general;
	text-align:general;
	vertical-align:middle;
	white-space:nowrap;
	mso-rotate:0;
	mso-background-source:auto;
	mso-pattern:auto;
	color:windowtext;
	font-size:10.0pt;
	font-weight:400;
	font-style:normal;
	text-decoration:none;
	font-family:Arial;Verdana;Helvetica;
	mso-generic-font-family:auto;
	mso-font-charset:204;
	border:none;
	mso-protection:locked visible;
	mso-style-name:Normal;
	mso-style-id:0;}
td
	{mso-style-parent:style0;
	padding: 1px;
	white-space:normal;
	mso-ignore:padding;}
.xtl
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	border:.5pt solid black;
	white-space:normal;}
.xtc
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:center;
	border:.5pt solid black;
	white-space:normal;}
.xtr
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:right;
	border:.5pt solid black;
	white-space:normal;}
.xd
	{mso-style-parent:style0;
	mso-number-format:"d\/mm\/yyyy\;\@";
	text-align:center;
	vertical-align:middle;
	border:.5pt solid black;
	white-space:normal;}
.xd_va_t
	{mso-style-parent:style0;
	mso-number-format:"d\/mm\/yyyy\;\@";
	text-align:center;
	vertical-align:top;
	border:.5pt solid black;
	white-space:normal;}
.xds
	{mso-style-parent:style0;
	mso-number-format:"d\/mm\;\@";
	text-align:center;
	vertical-align:middle;
	border:.5pt solid black;
	white-space:normal;}
.xn1
	{mso-style-parent:style0;
	mso-number-format:Fixed;
	text-align:right;
	border:.5pt solid black;
	white-space:normal;}
.xn1c
	{mso-style-parent:style0;
	mso-number-format:Fixed;
	text-align:center;
	border:.5pt solid black;
	white-space:normal;}
.xn2
	{mso-style-parent:style0;
	mso-number-format:"\#\,\#\#\#0";
	text-align:right;
	border:.5pt solid black;
	white-space:normal;}
.xn3l
	{mso-style-parent:style0;
	mso-number-format:0;
	text-align:left;
	border:.5pt solid black;
	white-space:normal;}
.xn3c
	{mso-style-parent:style0;
	mso-number-format:0;
	text-align:center;
	border:.5pt solid black;
	white-space:normal;}
.xn3r
	{mso-style-parent:style0;
	mso-number-format:0;
	text-align:right;
	border:.5pt solid black;
	white-space:normal;}
.xtlwr
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	border:none;
	white-space:nowrap;}
.xtcb	
	{mso-style-parent:style0;
	mso-number-format:"\@";
	font-weight:700;
	text-align:center;
	border:.5pt solid black;
	white-space:normal;}
.xtlb	
	{mso-style-parent:style0;
	mso-number-format:"\@";
	font-weight:700;
	text-align:left;
	border:.5pt solid black;
	white-space:normal;}
.xtl8wr
	{mso-style-parent:style0;
	mso-number-format:"\@";
	font-size:8.0pt;
	font-family:Verdana,Arial,Helvetica;
	text-align:left;
	border:none;
	white-space:nowrap;}
.xtl10bwr
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	font-weight:700;
	font-family:Verdana,Arial,Helvetica;
	border:none;
	white-space:nowrap;}
.xtl10wr
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	font-family:Verdana,Arial,Helvetica;
	border:none;
	white-space:nowrap;}
.xtl12bwr
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	font-weight:700;
	font-family:Verdana,Arial,Helvetica;
	font-size:12.0pt;
	border:none;
	white-space:nowrap;}
.xtl10b
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	font-weight:700;
	font-family:Verdana,Arial,Helvetica;
	border:none;
	white-space:normal;}
.xtl10
	{mso-style-parent:style0;
	mso-number-format:"\@";
	text-align:left;
	font-family:Verdana,Arial,Helvetica;
	border:none;
	white-space:normal;}
</style>

</head>
<body>
<tr><td class="xtl8wr">МБОУ лицей №31</td></tr><h2 align="center" >Общие сведения об обучающихся , класс: 5а</h2><br><table><tr><td class="xtl10wr" nowrap><b>Учебный год:</b> 2015/2016</td></tr><tr><td class="xtl10wr" nowrap><b>Класс:</b> 5а</td></tr><tr><td class="xtl10wr" nowrap><b>Период:</b> 2 триместр</td></tr><tr><td> </td></tr></table><BR><table class="ThinTable" border="1"><TR VALIGN="center"><TH>№<br />п/п</TH><TH>Ф.И.О. учащегося</TH><TH>Пол</TH><TR><TD ALIGN="center">1</TD><TD ALIGN="left">Бисярина Екатерина Евгеньевна</TD><TD ALIGN="center">Ж</TD>
<TR><TD ALIGN="center">2</TD><TD ALIGN="left">Бульдяева Анфиса Игоревна</TD><TD ALIGN="center">Ж</TD>
<TR><TD ALIGN="center">3</TD><TD ALIGN="left">Бухдрукер Роман Сергеевич</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">4</TD><TD ALIGN="left">Вейгандт Владимир Вячеславович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">5</TD><TD ALIGN="left">Воробьёв Владимир Алексеевич</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">6</TD><TD ALIGN="left">Доможиров Антон Александрович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">7</TD><TD ALIGN="left">Еремин Юрий Викторович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">8</TD><TD ALIGN="left">Иванчиков Борис Алексеевич</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">9</TD><TD ALIGN="left">Киселев Георгий Константинович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">10</TD><TD ALIGN="left">Лапаткин Владислав Игоревич</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">11</TD><TD ALIGN="left">Максимов Никита Данилович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">12</TD><TD ALIGN="left">Мельников Глеб Денисович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">13</TD><TD ALIGN="left">Огурцов Андрей Викторович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">14</TD><TD ALIGN="left">Примаков Максим Антонович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">15</TD><TD ALIGN="left">Райков Дмитрий Александрович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">16</TD><TD ALIGN="left">Томин Ярослав Константинович</TD><TD ALIGN="center">М</TD>
<TR><TD ALIGN="center">17</TD><TD ALIGN="left">Урубаева Ульяна Евгеньевна</TD><TD ALIGN="center">Ж</TD>
<TR><TD ALIGN="center">18</TD><TD ALIGN="left">Чулаков Антон Андреевич</TD><TD ALIGN="center">М</TD>
</TABLE><br /><h3>Состав класса</h3><table align="center" class="ThinTable" border="1"><tr><th align="left">Кол-во по годам рождения</th><th>2003</th><th>2004</th><th>2005</th><th>Всего</th></tr><tr><th align="left">Мальчиков</th><td align="right">2</td><td align="right">11</td><td align="right">2</td><td align="right">15</td></tr><tr><th align="left">Девочек</th><td align="right">0</td><td align="right">3</td><td align="right">0</td><td align="right">3</td></tr></table><br /><h3>Изучение языка</h3><table align="center" class="ThinTable" border="1"><tr><th align="left">Английский язык</th><td align="right"> 6 </td></tr></table><table border="0"><tr><td> </td></tr><tr><td class="xtl8wr"><i>Состояние на 08.12.2015 21:43:53</i></td></tr><tr><td class="xtl8wr">© <i>Сетевой Город. Образование</i> 2.70.26504</td></tr></table>
</body>
</html>

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

А открывать в windows будешь?

 

Вообще хотелось бы на андроиде, но в перспективе на любом девайсе.

 

Это обычный HTML файл со стилями.

 

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

Изменено пользователем Akromd
Ссылка на комментарий
  • 0

Мне все таки нужна ваша помощь.

Этот файл у меня никак не хочет открываться.

Если его открывать чего TfileStream, то в итоге получается Кракозябра. post-1807-0-51874700-1450369769.png

 try
    MyStream:=TFileStream.Create('C:\Users\Михаил\Downloads\SecretaryAndClassChiefExport (1).xls', fmOpenRead);
    MyStream.Seek(0,soFromBeginning);
    //Размер файла в байтах.
    i := MyStream.Size;
    SetLength(buf, i);
    MyStream.Read(Pointer(buf)^,i);
  finally
    MyStream.Free;
  end;
  Memo1.Text := buf;

Если открыть непосредоственно через memo

memo1.lines.LoadFromFile('C:\Users\Михаил\Downloads\SecretaryAndClassChiefExport (1).xls');

то отображение всех символов кроме русских вполне нормальное, но они то как раз и нужны.

post-1807-0-83905900-1450369872_thumb.pn

 

 

Ссылка на комментарий
  • 0
  • Модераторы

Указать нужно кодировку, TEncoding.UTF8 в процедуре загрузки файла, вторым параметром

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...