Спасибо, что нашли время прочитать эту проблему и обдумать решение.
У меня есть шаблон Word (.dotx), который содержит предопределенную и стилизованную таблицу с двумя строками. Первый - это заголовок, а второй - пустой. Он имеет пять столбцов. Первая ячейка в первой строке данных (не заголовок) помечена как «Пуск».
У меня есть данные из SQL, где все возвращаемые данные являются строкой. Возвращается пять столбцов данных, и количество строк может варьироваться, но всегда будет меньше 20
Я могу создать новую таблицу в документе Word, но я не хочу этого.
Что я хотел бы сделать, это передать данные в таблицу слов, чтобы количество строк в таблице слов динамически увеличивалось по мере необходимости.
Я не могу найти ссылки для идентификации конкретной таблицы в существующем текстовом документе и передачи в нее данных
Мне удалось СОЗДАТЬ таблицу под уже существующей в шаблоне, но это не то, что я хочу, так как я уже разработал таблицу
'in the btn_click event
oDT = returnDataTable(sSQL) 'oDT is defined as a DataTable
Dim iFields As Integer = oDT.Columns.Count - 1
Dim sText As String = ""
For Each oRow As DataRow In oDT.Rows
For idx = 0 To iFields
sText += oRow.Item(idx)
If idx < iFields Then sText += vbTab
Next
Next
' then :
Private Function writeToWordByRange(ByVal sText As String) As Boolean
Dim wdApp As Word.Application
Dim oDoc As Word.Document
wdApp = CreateObject("Word.Application")
oDoc = wdApp.Documents.Add(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "PathToDocTemplate.dotx"))
wdApp.Visible = True
' the next four lines are from Stackoverflow
Dim rng As Word.Range = oDoc.Content
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
rng.Text = sText
Dim tbl As Word.Table = rng.ConvertToTable(vbTab)
' I added this line to see if I could pass the string to the table
' but it doesn't seem to take the vbTab as a delimiter but puts all the data into the first cell
oDoc.Bookmarks.Item("Start").Range.Text = sText
'release Word and continue
oDoc = Nothing
wdApp = Nothing
End Function