<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA: Как заставить Word открыть doc/rtf-файл, с расширением odt]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=7575</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=7575&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA: Как заставить Word открыть doc/rtf-файл, с расширением odt».]]></description>
		<lastBuildDate>Sat, 15 Sep 2012 16:22:30 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA: Как заставить Word открыть doc/rtf-файл, с расширением odt]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=63882#p63882</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p><strong>yuriy2000</strong>, зачем (и кому) нужно менять у документа Word расширение?</p></blockquote></div><p>Хороший вопрос. </p><p>К нам поступают такие файлы от службы судебных приставов. Эти файлы создаются в OpenOffice при помощи какой-то программы/макроса по некоему шаблону. Все файлы имеют расширение ODT. Моя задача обработать входящие файлы.&nbsp; Извлечь из них определенную информацию. </p><p>Иногда попадаются вот такие &quot;кривые&quot; переименованные файлы.&nbsp; Я предполагаю, что приставы иногда, перед тем как отправить файл, решают внести в него изменения при помощи Word&#039;a... ну и сохраняют вот так вот криво. </p><p>Кстати, Word часто не может открыть и &quot;нормальные&quot; ODT файлы. Так вот я придумал следующее - поскольку ODT файл представляет собой zip-архив, содержащий текст в виде XML, то быстрей оказалось извлечь этот <strong>content.xml</strong>&nbsp; и потом конвертировать его в HTML&nbsp; через split по строке <strong>&lt;text:p</strong>&nbsp; следующим образом </p><p>фрагмент кода<br /></p><div class="codebox"><pre><code>sStrng1=split( UTF2Win(FSO.OpenTextFile(&quot;content.xml&quot;,1).ReadAll),&quot;&lt;text:p&quot;) 

oFileOut.WriteLine &quot;&lt;html&gt;&quot; 
for i=1 to UBound(sStrng1)
  oFileOut.WriteLine &quot;&lt;p &quot; &amp; replace(sStrng1(i),&quot;text:&quot;,&quot;&quot;)
next 
oFileOut.WriteLine &quot;&lt;/html&gt;&quot;</code></pre></div><p>потом уже открываю файл в Word&#039;e как html документ (wdOpenFormatWebPages) и извлекаю из него нужный текст.<br />Получается даже в 5-10 раз быстрей, чем открыть файл через встроенный конвертер Word&#039;a (wdOpenFormatOpenDocumentText)</p>]]></description>
			<author><![CDATA[null@example.com (yuriy2000)]]></author>
			<pubDate>Sat, 15 Sep 2012 16:22:30 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=63882#p63882</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA: Как заставить Word открыть doc/rtf-файл, с расширением odt]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=63881#p63881</link>
			<description><![CDATA[<p><strong>yuriy2000</strong>, зачем (и кому) нужно менять у документа Word расширение?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sat, 15 Sep 2012 14:55:40 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=63881#p63881</guid>
		</item>
		<item>
			<title><![CDATA[VBA: Как заставить Word открыть doc/rtf-файл, с расширением odt]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=63879#p63879</link>
			<description><![CDATA[<p>Господа, никто не сталкивался с такой проблемой:<br />Если документ в формате Word&#039;a (DOC/rtf/docx) сохранить с расширением <a href="http://ru.wikipedia.org/wiki/OpenDocument">ODT</a> (или поменять у нормального файла rtf/doc расширение на <strong>ODT</strong>, то файл в Word&#039;e не открывается. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> При этом OpenOffice открывает такие файлы без проблем. <img src="//forum.script-coding.com/img/smilies/cool.png" width="15" height="15" /></p><br /><p>пробовал оба варианта<br /></p><div class="codebox"><pre><code>objWord.Documents.Open(Filename:=FilePath, Format:=wdOpenFormatAuto)
objWord.Documents.Open(Filename:=FilePath, Format:=wdOpenFormatDocument)</code></pre></div><p>Выдается ошибка <strong>&quot;Не удается открыть файл из-за ошибок его содержимого&quot;</strong></p><br /><br /><p>Поскольку я не могу изменять исходные файлы, то у меня получается открыть этот &quot;кривой&quot; файл&nbsp; только скопировав его во временную папку и поменяв у него расширение. При этом еще приходится предварительно анализировать содержимое файла (по первым&nbsp; 4-м байтам).</p><p>У кого-нибудь есть иные идеи?</p><br /><br /><p>PS: MS Word 2007 SP3, Windows XP SP3</p>]]></description>
			<author><![CDATA[null@example.com (yuriy2000)]]></author>
			<pubDate>Sat, 15 Sep 2012 13:43:00 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=63879#p63879</guid>
		</item>
	</channel>
</rss>
