Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Работа с Word 2003 / 11 сообщений из 11, страница 1 из 1
27.06.2013, 01:25
    #38312039
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
Привет всем!

Пользователь грузит файл формата .doc

Мне нужно достать данные из таблицы, заполненные по заранее известному шаблону.
У меня openXML выдаёт ошибку file contains corrupted data.

Мне нужно перевести файл в docx и работать с OpenXml?
Но ведь тогда придётся сохранять файл, а потом удалять после обработки, т.е. это не лучший вариант.


Что вы мне посоветуете?
...
Рейтинг: 0 / 0
27.06.2013, 05:19
    #38312058
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
Отказаться от формата doc.
...
Рейтинг: 0 / 0
27.06.2013, 07:15
    #38312070
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
AntonariyОтказаться от формата doc.
формат doc (старый) документирован, зачем отказываться?
...
Рейтинг: 0 / 0
27.06.2013, 09:43
    #38312157
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
От того, что он документирован, он не становится удобным.
...
Рейтинг: 0 / 0
27.06.2013, 09:57
    #38312169
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
1. Использовать конвертер (написать отдельный сервис конвертации)

wordconv.exe
OpenXMLTranslator
Aspose.Words
Spire.Doc

2. Microsoft Office Interop Word Assembly 12.0 + WdSaveFormat.wdFormatDocumentDefault

3. Отказаться от устаревшего типа
...
Рейтинг: 0 / 0
27.06.2013, 12:51
    #38312448
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
ясно, спасибо.

выбрал пункт 3. Не знаю, правда, что на это скажет заказчик.
...
Рейтинг: 0 / 0
27.06.2013, 12:58
    #38312468
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
Studentsвыбрал пункт 3
Правильный выбор.

StudentsНе знаю, правда, что на это скажет заказчик.
Попытайся убедить его в том, что это старый неподдерживаемый современным ПО формат. Сейчас уже даже многие гос. учреждения перешли на формат docx для внутреннего и онлайн документооборота.

В любом случае, у заказчика есть возможность использовать бесплатный пакет совместимости: Пакет обеспечения совместимости Microsoft Office для форматов файлов Word, Excel и PowerPoin
...
Рейтинг: 0 / 0
27.06.2013, 15:39
    #38312829
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
ясно, спасибо за советы
...
Рейтинг: 0 / 0
27.06.2013, 17:14
    #38313073
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
Есть ещё 2 вопроса.

1)Каким образом можно сделать выборку всех XMLNode:

Код: c#
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.
OpenFileDialog ofd = new OpenFileDialog();
                ofd.Filter = "Word Documents|*.docx";
                DialogResult dr = ofd.ShowDialog();

                if (dr == DialogResult.OK)
                {
                    string template = ofd.FileName;

                    string documentText;
                    try
                    {
                        using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(template, true))
                        {
                            using (StreamReader reader = new StreamReader(wordDoc.MainDocumentPart.GetStream()))
                            {
                                documentText = reader.ReadToEnd();                                
                                XmlDocument doc = new XmlDocument();
                                try
                                {
                                    doc.LoadXml(documentText);
                                   
                                    XmlNamespaceManager nm = new XmlNamespaceManager(doc.NameTable);
                                    nm.AddNamespace("w", "http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas");

                                    XmlNodeList nlist = doc.SelectNodes("/w:tbl/w:tr", nm);
                                    foreach (XmlNode xn in nlist)
                                    {
                                      ....
                                     }



У меня в nlist ничего не попадает, хотя такие тэги есть.


2)Т.к. я беру docx 2010 года, то ссылка
http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas

А если пользователь будет грузить 2007 или 2013 годов, то ссылку нужно будет менять?
...
Рейтинг: 0 / 0
27.06.2013, 17:44
    #38313134
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
Сам XML выглядит так (это только начало)

Код: 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.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14">
  <w:body>
    <w:p w:rsidR="0028470A" w:rsidRDefault="0028470A" w:rsidP="00BD4941">
      <w:pPr>
        <w:jc w:val="right"/>
        <w:rPr>
          <w:rFonts w:ascii="Verdana" w:hAnsi="Verdana" w:cs="Verdana"/>
          <w:sz w:val="20"/>
          <w:szCs w:val="20"/>
        </w:rPr>
      </w:pPr>
      <w:bookmarkStart w:id="0" w:name="_GoBack"/>
      <w:bookmarkEnd w:id="0"/>
    </w:p>
    <w:tbl>
      <w:tblPr>
        <w:tblStyle w:val="a3"/>
        <w:tblW w:w="5000" w:type="pct"/>
        <w:tblInd w:w="0" w:type="dxa"/>
        <w:tblBorders>
          <w:top w:val="single" w:sz="4" w:space="0" w:color="FFFFFF"/>
          <w:left w:val="single" w:sz="4" w:space="0" w:color="FFFFFF"/>
          <w:bottom w:val="single" w:sz="4" w:space="0" w:color="FFFFFF"/>
          <w:right w:val="single" w:sz="4" w:space="0" w:color="FFFFFF"/>
          <w:insideH w:val="none" w:sz="0" w:space="0" w:color="auto"/>
          <w:insideV w:val="single" w:sz="4" w:space="0" w:color="FFFFFF"/>
        </w:tblBorders>
        <w:tblLook w:val="01E0" w:firstRow="1" w:lastRow="1" w:firstColumn="1" w:lastColumn="1" w:noHBand="0" w:noVBand="0"/>
      </w:tblPr>
      <w:tblGrid>
        <w:gridCol w:w="5134"/>
        <w:gridCol w:w="5135"/>
      </w:tblGrid>
      <w:tr w:rsidR="0028470A" w:rsidRPr="007150F0">
        <w:trPr>
          <w:trHeight w:val="1252"/>
        </w:trPr>
        <w:tc>
          <w:tcPr>




Может проблема в том, что ссылки для XmlNamespaceManager.AddNamespace не работают, если по ним перейти.
Но word возвращает этот XML
...
Рейтинг: 0 / 0
27.06.2013, 23:28
    #38313404
Students
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Word 2003
всё разобрался
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Работа с Word 2003 / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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