Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > импорт данных с word в textbox


Автор: Ali002 4.5.2014, 20:31
Программисты! У меня такая задача, есть документ word  там есть поля для заполнения текст и дата, нужно из каждой строчки выдернуть данные из этих полей, подскажите пожалуйста как это сделать. 

Автор: jonie 5.5.2014, 11:18
Использовать COM API ворда или (если документ в docx формате) - OpenXML SDK или аналоги.

Автор: Ali002 15.5.2014, 02:15
Цитата(jonie @ 5.5.2014,  11:18)
Использовать COM API ворда или (если документ в docx формате) - OpenXML SDK или аналоги.

Я сделал полностью импорт всего содержимого документа, все как попало вмтавилось, лишние пробелы и некоторые значения которые мне вовсе не нужны, как пользоваться  open xml sdk я не знаю даже и не понял. Может есть какой нибудь пример парсить текст удалить лишние пробелы и вырезать нужную часть текста? 

Автор: jonie 15.5.2014, 09:19
Как вы делали импорт? Если через COM API , тогда можно записать максрос в ворде и подсмотреть что он туда впишет при выполнении руками действий - это считай 90% необходимых знаний по нему... остальные 10 - это MSDN

Автор: Ali002 15.5.2014, 17:03
Цитата(jonie @ 15.5.2014,  09:19)
Как вы делали импорт? Если через COM API , тогда можно записать максрос в ворде и подсмотреть что он туда впишет при выполнении руками действий - это считай 90% необходимых знаний по нему... остальные 10 - это MSDN

вот так я делал)) 
подключил Microsoft.Office.Interop.Word;
и заполняю текстбокс всем сожержимм из ворд, ток парсить как не наю(
 
Код

try
            {
                Microsoft.Office.Interop.Word.Application wordObject = new Microsoft.Office.Interop.Word.Application();
                object file = textBox1.Text; //this is the path
                object nullobject = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.Word.Document docs = wordObject.Documents.Open
                    (ref file, ref nullobject, ref nullobject, ref nullobject,
                    ref nullobject, ref nullobject, ref nullobject, ref nullobject,
                    ref nullobject, ref nullobject, ref nullobject, ref nullobject,
                    ref nullobject, ref nullobject, ref nullobject, ref nullobject
                                    );
                docs.ActiveWindow.Selection.WholeStory();
                docs.ActiveWindow.Selection.Copy();
                IDataObject data = Clipboard.GetDataObject();
                textBox2.Text = data.GetData(DataFormats.Text).ToString();
                docs.Close(ref nullobject, ref nullobject, ref nullobject);
            }
            catch (Exception j)
            {
                MessageBox.Show(j.Message);
         
 так что мне можно будет сделать?

Автор: jonie 15.5.2014, 20:46
Цитата(Ali002 @  15.5.2014,  18:03 Найти цитируемый пост)
так что мне можно будет сделать? 

макрос запишите прям в ворде - просмотрите его код. Вообще в тамошнем редакторе подсказки работают. API ведь там тот же самый используется (только VBA умеет подсказывать более-менее). НУ а как нарисуете что-то похожее - так сразу и переносите в шарп ... Заодно изучите API вордовый...

Автор: Ali002 15.5.2014, 21:22
Цитата(jonie @ 15.5.2014,  20:46)
Цитата(Ali002 @  15.5.2014,  18:03 Найти цитируемый пост)
так что мне можно будет сделать? 

макрос запишите прям в ворде - просмотрите его код. Вообще в тамошнем редакторе подсказки работают. API ведь там тот же самый используется (только VBA умеет подсказывать более-менее). НУ а как нарисуете что-то похожее - так сразу и переносите в шарп ... Заодно изучите API вордовый...

Вы имеете ввиду мне это документ заново набрать в ворд а потом перевести в с # c VBA ?

Автор: jonie 15.5.2014, 21:38
Цитата(Ali002 @  15.5.2014,  22:22 Найти цитируемый пост)

Вы имеете ввиду мне это документ заново набрать в ворд а потом перевести в с # c VBA ? 

я имею в виду "записать макрос с нужными (примерно) вам переходами по документу (параграфы), выделения их и т.д." и посмотреть в его код.

Автор: kolaspirit 9.1.2015, 09:54
Я бы порекомендовал следующий инструмент с хорошей документацией (правда платный, но есть триал):
http://www.aspose.com/.net/word-component.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)