|
|
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
Добрый день! Подскажите пожалуйста, как можно из источника данных как например OracleDataReader выгрузить данные запроса в документ Word? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim comm1 As OracleCommand = New OracleCommand("select ja.address, ja.house, ja.appartment, ja.phone, ja.fax, ja.zip, ja.passport from table_addresses", conn) comm1.CommandType = CommandType.Text Dim dr As OracleDataReader dr = comm1.ExecuteReader Dim wda As New Word.Application Dim wdd As New Word.Document wdd = wda.Documents.Add wdd.Range.Text = "Телефон" ......................................... ......................................... dr.Read() --поля запроса-- wda.Visible = True End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 13:16:57 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял, то нужен доступ к тексту документа. Привожу участок кода - может что интересное найдете. object oMissing = System.Reflection.Missing.Value; Word._Application oWord = null; Word._Document oDoc = null; try { bool visible = false; object vis = (object)visible; oWord = new Word.Application(); WriteTextToLog("Открыто приложение WORD"); oWord.Visible = visible; object path = "http://home/" + docFile.Url; oDoc = oWord.Documents.Open(ref path, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref vis, ref oMissing, ref oMissing, ref oMissing, ref oMissing); WriteTextToLog("Открыт для редактирования документ " + path.ToString()); //Алгоритм подстановки полей int openindex; int closeindex; int startindex; string strLine; Hashtable docFields = new Hashtable(); foreach (Word.Paragraph par in oDoc.Paragraphs) { startindex = 0; openindex = -1; closeindex = -1; do { try { openindex = par.Range.Text.IndexOf("<", startindex); startindex = openindex; closeindex = par.Range.Text.IndexOf(">", startindex); startindex = closeindex; strLine = par.Range.Text.Substring(openindex + 1, closeindex - openindex - 1); string oldValue = "<" + strLine + ">"; string newValue = document[strLine].ToString(); docFields.Add(oldValue, newValue); } catch (ArgumentOutOfRangeException er) { } catch (NullReferenceException er) { } catch (ArgumentException er) { } } while (openindex != -1); foreach (object key in docFields.Keys) { par.Range.Text = par.Range.Text.Replace(key.ToString(), docFields[key].ToString()); // ЗДЕСЬ КЛЮЧЕВАЯ СТРОКА } docFields.Clear(); } WriteTextToLog("Документ изменен"); oDoc.Save(); WriteTextToLog("Документ сохранен."); } catch (Exception er) { WriteTextToLog(string.Format("Ошибка : {0}", er.Message)); } finally { try { object SaveChanges = Word.WdSaveOptions.wdSaveChanges; oDoc.Close(ref SaveChanges, ref oMissing, ref oMissing); WriteTextToLog("Документ закрыт"); } catch (Exception er) { WriteTextToLog("Ошибка: Невозможно закрыть документ"); } finally { try { oWord.Quit(ref oMissing, ref oMissing, ref oMissing); WriteTextToLog("Приложение WORD закрыто"); } catch (Exception er) { WriteTextToLog("Невозможно закрыть приложение WORD"); } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 13:45:30 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
Не совсем. Мне необходимо вытащить данные запроса в Word. Короче говоря у меня есть запрос, который вытаскивает анкетные данные сотрудника, запрашивая его номер телефона (это параметр). Так вот нужно чтобы эти данные выгружались в Word-ий документ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 07:25:05 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
До этого я вытаскивала данные в EXCEL, но из-за некоторого несоответствия данных, к примеру у меня в запросе есть такое поле как "house" (номер дома). И если значение этого поля будет к пимеру 20/8 в EXCEL он вытаскивает как "20 авг." Dim dr As OracleDataReader dr = commIMEI.ExecuteReader Dim app As New Excel.Application Dim wb As Excel.Workbook Dim ws As Excel.Worksheet wb = app.Workbooks.Add ws = wb.Worksheets(1) dr.Read() ws.Cells(4, 3) = dr("msisdn") ws.Cells(5, 3) = dr("sign_fio") ws.Cells(8, 3) = dr("name_r") ws.Cells(9, 3) = dr("city") ws.Cells(10, 3) = dr("region") ws.Cells(11, 3) = dr("address") ws.Cells(12, 3) = dr("house") ws.Cells(13, 3) = dr("appartment") ws.Cells(14, 3) = dr("phone") ws.Cells(15, 3) = dr("fax") ws.Cells(16, 3) = dr("zip") ws.Cells(17, 3) = dr("passport") dr.Close() app.Visible() = True End Sub Поэтому я хочу сделать вытащить их в Word. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 07:35:20 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
в Excel вариант № 1 Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 08:47:44 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
Спасибо получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 11:39:49 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
А вот у меня еще такой вопрос. В общем есть запрос где я вытаскиваю дату первого звонка и в таблице из которой я беру эту дату значение поля "START_TIME" к примеру такое 30.11.2007 8:15:46. И вот мне нужно это значение вытащить тоже в EXCEL. И вот я пишу так ws.Cells(24, 3) = dr("start_time") --а программа выдает ошибку IndexOutOfRangeException was unhandled Я потом попробовала использовать функцию Format() ws.Cells(24, 3) = Format(dr("start_time"), "dd-mm-yyyy"), но VB подчеркивает эту строку и пишет, что Argument not specified for parametr 'format' of 'Public SharedFunction Format (enum Type As System.Type, value As Object, Format As String) As String' Не подскажите, что нужно добавить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 15:07:53 |
|
||
|
Word.Application
|
|||
|---|---|---|---|
|
#18+
hum_iА вот у меня еще такой вопрос. В общем есть запрос где я вытаскиваю дату первого звонка и в таблице из которой я беру эту дату значение поля "START_TIME" к примеру такое 30.11.2007 8:15:46. И вот мне нужно это значение вытащить тоже в EXCEL. И вот я пишу так ws.Cells(24, 3) = dr("start_time") --а программа выдает ошибку IndexOutOfRangeException was unhandled Я потом попробовала использовать функцию Format() ws.Cells(24, 3) = Format(dr("start_time"), "dd-mm-yyyy"), но VB подчеркивает эту строку и пишет, что Argument not specified for parametr 'format' of 'Public SharedFunction Format (enum Type As System.Type, value As Object, Format As String) As String' Не подскажите, что нужно добавить? А вар-т г-на vkodor по выгрузке в Эксель поля ДБ в текстовом формате Вам тут не подходит? Дешево и просто. ЗЫ офф: как-то сами таблицы БД недружественно к клиенту выполнены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 17:31:55 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34974832&tid=2181798]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 183ms |
| total: | 257ms |

| 0 / 0 |
