Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Данные из doc в mysql
 
 автор: Jura   (15.05.2006 в 17:57)   письмо автору
 
 

Люди добрые, коллеги и собратья по кодингу. Подскажите пожалуйста как лучше сделать.
Ситуация такая - есть 10000 строк в таблице ( в вордовском файле) - 270 страниц - 56 мб.
Уже не знаю что и придумать. Надо перенести данные в базу mysql. Приветствуются любые решения, которые можно выполнить за короткое время.
Сразу хочу сказать, что данные заносили не профессионалы и с ошибками в форматировании. Пробовал по кускам копировать из word в excel, но возникали склеенные ячейки(по вертикали).

Помогите плиз. Очень надо. Уже начал отчаиваться... Помогите, очень прошу.

   
 
 автор: DDK   (15.05.2006 в 18:14)   письмо автору
 
   для: Jura   (15.05.2006 в 17:57)
 

Напрямую из doc-файла в базу перегнать не удастся. Надо сначала как-нибудь экспортировать таблицу с текстом в просто текстовый файл с закономерным форматированием и тогда уже думать.

   
 
 автор: Jura   (15.05.2006 в 18:17)   письмо автору
 
   для: DDK   (15.05.2006 в 18:14)
 

Подскажите как в csv или txt перегнать а главное чем. Машина висит при любом действии в 56 метровом файле.

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

   
 
 автор: Jura   (15.05.2006 в 18:36)   письмо автору
 
   для: Jura   (15.05.2006 в 18:17)
 

Хелп... Люди шарящие. где же вы?

Очень надо.

   
 
 автор: DDK   (15.05.2006 в 18:43)   письмо автору
 
   для: Jura   (15.05.2006 в 18:36)
 

Есть идея получше - сохраните этот файл как HTML-страницу (в ворде можно), а потом мы уже поможем вам написать регулярные выражения для выцепления нужного текста из неё. Прикрепите потом отрывок прлученной страницы на том месте, где идёт текст.

   
 
 автор: Jura   (15.05.2006 в 19:08)   письмо автору
 
   для: DDK   (15.05.2006 в 18:43)
 


<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0 width=1157
 style='width:868.0pt;margin-left:2.1pt;border-collapse:collapse;mso-padding-alt:
 0cm 5.4pt 0cm 5.4pt'>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:4.5pt'>
  <td width=76 valign=top style='width:2.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'><span style='font-size:11.0pt;font-family:Arial;mso-fareast-font-family:
  "Times New Roman";mso-ansi-language:RU;mso-fareast-language:AR-SA;mso-bidi-language:
  AR-SA'>
  <ol style='margin-top:0cm' start=1 type=1>
   <li class=MsoNormal style='text-align:center;mso-list:l20 level1 lfo20;
       tab-stops:list 36.0pt;layout-grid-mode:char'><span style='font-size:
       11.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></li>
  </ol>
  </span></td>
  <td width=99 valign=top style='width:74.2pt;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
  char'><span style='font-size:11.0pt;font-family:Arial'>13.04.06<o:p></o:p></span></p>
  </td>
  <td width=76 valign=top style='width:2.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
  char'><span style='font-size:11.0pt;font-family:Arial'>19:33<o:p></o:p></span></p>
  </td>
  <td width=113 valign=top style='width:3.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
  char'><span style='font-size:11.0pt;font-family:Arial'>6786 -13/4<o:p></o:p></span></p>
  </td>
  <td width=113 valign=top style='width:3.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal style='layout-grid-mode:char'><span style='font-size:11.0pt;
  font-family:Arial'>41500<o:p></o:p></span></p>
  </td>
  <td width=265 valign=top style='width:7.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal style='layout-grid-mode:char'><span style='font-size:11.0pt;
  font-family:Arial'>Закрытое акционерное общество<o:p></o:p></span></p>
  </td>
  <td width=416 valign=top style='width:11.0cm;border-top:none;border-left:
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
  mso-border-left-alt:solid black .5pt;mso-border-bottom-alt:solid black .5pt;
  padding:0cm 5.4pt 0cm 5.4pt;height:4.5pt'>
  <p class=MsoNormal style='layout-grid-mode:char'><span style='font-size:11.0pt;
  font-family:Arial'>ЕТС<o:p></o:p></span></p>
  </td>
 </tr>
 <tr style='mso-yfti-irow:0;mso-yfti-firstrow:yes;height:4.5pt'>
  <td width=76 valign=top style='width:2.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'><span style='font-size:11.0pt;font-family:Arial;mso-fareast-font-family:
  "Times New Roman";mso-ansi-language:RU;mso-fareast-language:AR-SA;mso-bidi-language:
  AR-SA'>
  <ol style='margin-top:0cm' start=2 type=1>
   <li class=MsoNormal style='text-align:center;mso-list:l20 level1 lfo20;
       tab-stops:list 36.0pt;layout-grid-mode:char'><span style='font-size:
       11.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></li>
  </ol>
  </span></td>
  <td width=99 valign=top style='width:74.2pt;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
  char'><span style='font-size:11.0pt;font-family:Arial'>09.04.2006<o:p></o:p></span></p>
  </td>
  <td width=76 valign=top style='width:2.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
  char'><span style='font-size:11.0pt;font-family:Arial'>21:14<o:p></o:p></span></p>
  </td>
  <td width=113 valign=top style='width:3.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
  char'><span style='font-size:11.0pt;font-family:Arial'>3664-09/4<o:p></o:p></span></p>
  </td>
  <td width=113 valign=top style='width:3.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal style='layout-grid-mode:char'><span style='font-size:11.0pt;
  font-family:Arial'>36000<o:p></o:p></span></p>
  </td>
  <td width=265 valign=top style='width:7.0cm;border-top:none;border-left:solid black 1.0pt;
  border-bottom:solid black 1.0pt;border-right:none;mso-border-left-alt:solid black .5pt;
  mso-border-bottom-alt:solid black .5pt;padding:0cm 5.4pt 0cm 5.4pt;
  height:4.5pt'>
  <p class=MsoNormal style='layout-grid-mode:char'><span style='font-size:11.0pt;
  font-family:Arial'>Индивидуальный предприниматель<o:p></o:p></span></p>
  </td>
  <td width=416 valign=top style='width:11.0cm;border-top:none;border-left:
  solid black 1.0pt;border-bottom:solid black 1.0pt;border-right:none;
  mso-border-left-alt:solid black .5pt;mso-border-bottom-alt:solid black .5pt;
  padding:0cm 5.4pt 0cm 5.4pt;height:4.5pt'>
  <p class=MsoNormal style='layout-grid-mode:char'><span style='font-size:11.0pt;
  font-family:Arial'>Кунцевич Светлана Михайловна <o:p></o:p></span></p>
  </td>
 </tr>
</table>


вот ячейки теперь осталось все лишнее убрать. Помогите плиз.

   
 
 автор: DDK   (16.05.2006 в 00:01)   письмо автору
 
   для: Jura   (15.05.2006 в 19:08)
 

Фух... вот, получилось у меня так:

<?php
$text 
file_get_contents("export.html");

preg_match_all("|font-family:Arial'>(.*?)<o:p>|"$text $matches); 

$id 1;
for(
$i=0;$i<count($matches[1]);$i+=7) {
    for(
$k=1;$k<7;$k++) {
        echo 
$matches[1][$i+$k]."<br>\n";
        
$toDB[$k] = addslashes($matches[1][$i+$k]);
    }
    
mysql_query("INSERT INTO tablename (id, col1, col2, col3, col4, col5, col6) VALUES ($id$toDB[1]$toDB[2]$toDB[3]$toDB[4]$toDB[5]$toDB[6])");
    echo 
mysql_error();
    echo 
"----------------<br>";
    
$id++;
}
?> 


CREATE TABLE tablename (
  id int(11) NOT NULL auto_increment,
  col1 text NOT NULL,
  col2 text NOT NULL,
  col3 text NOT NULL,
  col4 text NOT NULL,
  col5 text NOT NULL,
  col6 text NOT NULL,
  PRIMARY KEY  (id)
);

Соответственно, замените имя таблицв на нужное и col1, col2, col3, col4, col5, col6 - имена колонок в порядке слева направо.

   
 
 автор: Jura   (16.05.2006 в 01:07)   письмо автору
 
   для: DDK   (16.05.2006 в 00:01)
 

Спасибо, попробую. Обязательно отпишусь о резульатах.

   
 
 автор: DDK   (16.05.2006 в 07:59)   письмо автору
 
   для: Jura   (16.05.2006 в 01:07)
 

Маленькая поправка в коде, а именно, поправьте SQL-запрос на:

mysql_query("INSERT INTO tablename (id, col1, col2, col3, col4, col5, col6) VALUES ('$id', '$toDB[1]', '$toDB[2]', '$toDB[3]', '$toDB[4]', '$toDB[5]', '$toDB[6]')");

Забыл кавычки одинарное

   
 
 автор: Jura   (16.05.2006 в 12:56)   письмо автору
 
   для: DDK   (16.05.2006 в 07:59)
 

это я сразу заметил, только вот с парсингом увы не все гладко. Немного попозже отпишусь детальнее.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования