Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> считать таблицу с Word, что за кулебяки получаю??? 
V
    Опции темы
kuller
Дата 3.12.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



Здравствуйте!!!
Значит есть Word-овский документ, в нем есть таблица со значениями, задача состоит в том, чтобы считать данные с таблицы и затем вывести в DataGridView. 
Так выглядит документ word:
user posted image

Почитал форумы, погуглил и вот что получилось:
Код

            Microsoft.Office.Interop.Word.Application WordApplication = new Microsoft.Office.Interop.Word.Application();
            Object filename = @"D:\word\word\bin\Debug\Документ Microsoft Word.doc";
            Object confirmConversions = true;
            Object readOnly = false;
            Object addToRecentFiles = true;
            Object passwordDocument = Type.Missing;
            Object passwordTemplate = Type.Missing;
            Object revert = false;
            Object writePasswordDocument = Type.Missing;
            Object writePasswordTemplate = Type.Missing;
            Object format = Type.Missing;
            Object encoding = Type.Missing;;
            Object oVisible = Type.Missing;
            Object openConflictDocument = Type.Missing;
            Object openAndRepair  = Type.Missing;
            Object documentDirection = Type.Missing;
            Object noEncodingDialog = false;
            Object xmlTransform = Type.Missing;
            Microsoft.Office.Interop.Word.Document WordDocument = WordApplication.Documents.Open(ref filename, ref confirmConversions,
                ref readOnly, ref addToRecentFiles, ref passwordDocument, ref passwordTemplate, ref revert, ref writePasswordDocument, ref writePasswordTemplate,
                ref format, ref encoding, ref oVisible, ref openAndRepair, ref documentDirection, ref noEncodingDialog, ref xmlTransform);
            foreach (Microsoft.Office.Interop.Word.Table WordTable in WordDocument.Tables)
            {
                foreach (Microsoft.Office.Interop.Word.Row WordRow in WordTable.Rows)
                {
                    foreach (Microsoft.Office.Interop.Word.Cell WordCell in WordRow.Cells)
                    {
                        richTextBox1.Text += WordCell.Range.Text.ToString();
                    }
                }
            }
            Object saveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
            Object originalFormat = Type.Missing;
            Object routeDocument = Type.Missing;
            WordApplication.Quit(ref saveChanges, ref originalFormat, ref routeDocument);

В результате на выходе вот какие кракозямбы получаются:
user posted image

Как это можно исправить???
Заранее всем спасибо!!!
PM MAIL   Вверх
CYBERDREAM
Дата 3.12.2010, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



похоже на символ перевода каретки. В дебаге глянь что возвращает твой текст ячейки


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
kuller
Дата 21.12.2010, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 15.11.2007

Репутация: нет
Всего: нет



CYBERDREAM, спасибо, посмотрел пошагово, увидел, что он там лепит и вот, что сделал:
Код

               //перебираю строки в найденных таблицах
                foreach (Microsoft.Office.Interop.Word.Row WordRow in WordTable.Rows)
                {
                    string dataSTR = "";
                    //прохожу по ячейкам каждой строки
                    foreach (Microsoft.Office.Interop.Word.Cell WordCell in WordRow.Cells)
                    {
                        string temp = WordCell.Range.Text.ToString();
                        temp = temp.Replace("\r", "");
                        temp = temp.Replace("\a", "");
                        temp = temp.Trim();
                        dataSTR += temp + " ";
                    }
                    //вырезаю последний пробел
                    dataSTR = dataSTR.Remove(dataSTR.Length - 1, 1);
                    //добавляю строку данных в лист
                    dataWORD.Add(dataSTR);
                }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.