이는 XSD 파일에 대한 아주 대답하지 않습니다. 그러나 요청에 의해 나는 이것을 앞으로 나아 갔다.
docx를 메모리 스트림으로 여는이 예제에서는 캡션이있는 테이블이 있습니다.
문서라는 단어가 있는데, 테이블을 선택한 다음 마우스 오른쪽 버튼으로 클릭 -> 속성 -> 대체 텍스트 -> 제목을 클릭하십시오.
이 제목은 단어 문서에서 내 물건을 추가 할 위치를 검색하는 것입니다. 아마 이것을하는 훨씬 더 좋은 방법이 있습니다. 그러나 이로 인해 관리자는 문서를 편집 할 수 있으며 테이블을 삭제하지 않는 한 편집자는 적합하다고 생각하는대로 편집 할 수 있습니다.
dim mem As MemoryStream
dim doc = WordprocessingDocument.Open(mem, true)
Dim tableProperties = doc.MainDocumentPart.Document.Body.Descendants(Of TableProperties)().Where(Function(tp) tp.TableCaption IsNot Nothing)
For Each tProp As TableProperties In tableProperties
If tProp.TableCaption.Val.ToString() = "DatatableTitle" Then
Dim tbl = DirectCast(tProp.Parent, Table)
InsertTableRows(tbl, myListOfThings)
End If
Next
Private Function CreateTableCellText(myText As String) As TableCell
Dim run = New Run()
Dim runProperties = New RunProperties()
runProperties.Append(New RunFonts() With { .Ascii = "Times New Roman" })
runProperties.Append(New FontSize() With { .Val = "16" })
run.PrependChild(runProperties)
run.Append(New Text(myText))
Dim p = New Paragraph()
p.Append(run)
Dim td = New TableCell()
td.Append(p)
Return td
End Function
Private Sub InsertTableRows(tbl As Table, patients As List(Of MyTableList))
'var refRow = tbl.Elements<TableRow>().ElementAt(1); // the first is the header.
tbl.Elements(Of TableRow)().ElementAt(1).Remove()
For Each patient As MyTableList In patients
Dim tr = New TableRow()
tr.Append(CreateTableCellText(patient.DepartmentName))
tr.Append(CreateTableCellText(patient.PatientLastName))
tbl.Append(tr)
Next
End Sub
End Class
Public Class MyTableList
Public Property DepartmentName() As String
Get
Return m_DepartmentName
End Get
Set
m_DepartmentName = Value
End Set
End Property
Private m_DepartmentName As String
Public Property PatientLastName() As String
Get
Return m_PatientLastName
End Get
Set
m_PatientLastName = Value
End Set
End Property
Private m_PatientLastName As String
End Class
그리고 추가 체크 박스와 같은 그냥 단어를 만들 문서 편집기에서 Word 문서를 열고 문서에서 XML을 복사하여 새 단락으로 추가 한 다음 firstChild.InnerXml를 사용 및 복사, 아무 문제 없다 xml을 텍스트에 삽입합니다. 그리고 나서 그것을 더한다
나는 모든 xsd 파일 코드를 폐기하고 WordprocessingDocument와 템플릿을 docx로 사용했다. 잘 작동합니다. 원하는 경우 코드가 있으며 대답으로 게시 할 수 있습니다. 하지만 그게 당신이 요구하는 것이 아닙니다. 알아요. – Archlight
예, 아케이드하시기 바랍니다. 도움이 될 수 있습니다 ... 답변 해 주셔서 감사합니다 ... –