OfficeVba/test/docx_test.tsl

255 lines
17 KiB
Plaintext

Uses TSDocxEnumerations;
TestDocuments();
Function TestDocuments();
Begin
openpath := "D:/temp/vbatable.docx";
savepath := "D:/temp/vba.docx";
application := new TSDocxApplication();
application.Documents.Add;
Documents := application.Documents;
Documents.Open(FileName : openpath);
Documents.Save();
println("Documents.Count = {}", Documents.Count);
application.Documents("vbatable.docx").Activate;
println("ActiveDocument.Name = {}", application.ActiveDocument.Name);
println("ActiveDocument.Tables.Count = {}", application.ActiveDocument.Tables.Count);
ActiveDocument := application.ActiveDocument;
ActiveDocument.Paragraphs.Add;
prange := ActiveDocument.Range(2, 4);
prange.Font.Size := 20;
prange.ParagraphFormat.Alignment := 1;
return;
// TestTableCell(application);
// TestTableColumns(application);
// TestTables(application);
// TestParagraphs(application);
// TestRange(application);
// TestBorders(application);
// arr := application.ActiveDocument.Range(0, 10);
// println("arr = {}", arr);
Documents[2].SaveAs2(FileName : savepath);
println("savepath = {}", savepath);
End;
Function TestRange(application);
Begin
ActiveDocument := application.ActiveDocument;
range := ActiveDocument.Range(2, 4);
prange := ActiveDocument.Paragraphs(2).Range;
crange := ActiveDocument.Tables(1).Cell(1, 1).Range;
range.Font.Size := 20;
prange.Font.Bold := true;
crange.Font.Italic := true;
range.InsertAfter("After");
range.InsertBefore("Before");
prange.InsertAfter(Text: "after.");
prange.InsertBefore(Text: "before..");
crange.InsertAfter(Text: ".after");
crange.InsertBefore(Text: ".before");
ActiveDocument.Range(2, 17).Font.Size := 20;
println("ActiveDocument.Range(2, 4).Font.Size = {}", ActiveDocument.Range(2, 4).Font.Size);
println("ActiveDocument.Range(2, 5).Font.Size = {}", ActiveDocument.Range(2, 5).Font.Size);
// ActiveDocument.Paragraphs(1).Range.Font.Bold := true;
// ActiveDocument.Paragraphs(2).Range.Font.Italic := true;
// println("ActiveDocument.Paragraphs(1).Range.Font.Bold = {}", ActiveDocument.Paragraphs(1).Range.Font.Bold);
// ActiveDocument.Paragraphs(1).Range.Font.NameFarEast := "微软雅黑";
// println("ActiveDocument.Paragraphs(1).Range.Font.NameFarEast = {}", ActiveDocument.Paragraphs(1).Range.Font.NameFarEast);
// ActiveDocument.Paragraphs(1).Range.Font.Size := 20;
// println("ActiveDocument.Paragraphs(1).Range.Font.Size = {}", ActiveDocument.Paragraphs(1).Range.Font.Size);
// ActiveDocument.Paragraphs(1).Range.Font.Italic := true;
// println("ActiveDocument.Paragraphs(1).Range.Font.Italic = {}", ActiveDocument.Paragraphs(1).Range.Font.Italic);
// ActiveDocument.Paragraphs(1).Range.Font.Name := "宋体";
// println("ActiveDocument.Paragraphs(1).Range.Font.Name = {}", ActiveDocument.Paragraphs(1).Range.Font.Name);
// ActiveDocument.Paragraphs(1).Range.Font.AllCaps := true;
// println("ActiveDocument.Paragraphs(1).Range.Font.AllCaps = {}", ActiveDocument.Paragraphs(1).Range.Font.AllCaps);
// ActiveDocument.Paragraphs(1).Range.Font.Underline := TSDocxEnumerations.wdUnderlineDash();
// println("ActiveDocument.Paragraphs(1).Range.Font.Underline = {}", ActiveDocument.Paragraphs(1).Range.Font.Underline);
// ActiveDocument.Paragraphs(1).Range.Font.UnderlineColor := TSDocxEnumerations.wdColorLime();
// println("ActiveDocument.Paragraphs(1).Range.Font.UnderlineColor = {}", ActiveDocument.Paragraphs(1).Range.Font.UnderlineColor);
// ActiveDocument.Paragraphs(1).Range.Font.Reset();
ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Bold := true;
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Bold = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Bold);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.NameFarEast := "微软雅黑";
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.NameFarEast = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.NameFarEast);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Size := 30;
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Size = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Size);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Italic := true;
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Italic = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Italic);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Name := "宋体";
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Name = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Name);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.AllCaps := true;
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.AllCaps = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.AllCaps);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Underline := TSDocxEnumerations.wdUnderlineSingle();
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Underline = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Underline);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.UnderlineColor := TSDocxEnumerations.wdColorBlue();
// println("ActiveDocument.Tables(1).Cell(1, 1).Range.Font.UnderlineColor = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Font.UnderlineColor);
// ActiveDocument.Tables(1).Cell(1, 1).Range.Font.Reset();
ActiveDocument.Tables(1).Cell(1, 1).Range.InsertAfter(Text:="111");
ActiveDocument.Tables(1).Cell(1, 1).Range.InsertBefore("before");
End;
Function TestParagraphs(application);
Begin
println(">>>>>>>>>>>>>>>>>>>>>> TestParagraphs");
ActiveDocument := application.ActiveDocument;
println("ActiveDocument.Paragraphs.Count = {}", ActiveDocument.Paragraphs.Count);
ActiveDocument.Paragraphs(1).Range.Font.Bold := true;
End;
Function TestTables(application);
Begin
ActiveDocument := application.ActiveDocument;
// ActiveDocument.Tables(1).ApplyStyleDirectFormatting('样式1');
tables := application.ActiveDocument.Tables();
// tables[1].AutoFitBehavior(TSDocxEnumerations.wdAutoFitContent());
tables[1].AutoFitBehavior(TSDocxEnumerations.wdAutoFitWindow());
End;
Function TestTableCell(application);
Begin
ActiveDocument := application.ActiveDocument;
// tables[1].Cell(1, 1).Delete(TSDocxEnumerations.wdDeleteCellsEntireColumn());
// tables[1].Cell(1, 1).Delete(TSDocxEnumerations.wdDeleteCellsEntireRow());
// tables[1].Cell(3, 3).Delete(TSDocxEnumerations.wdDeleteCellsShiftLeft());
// tables[1].Cell(1, 2).Delete(TSDocxEnumerations.wdDeleteCellsShiftUp());
// tables[1].Cell(5, 3).Delete(TSDocxEnumerations.wdDeleteCellsShiftUp());
// tables2 := ActiveDocument.Tables(2);
// tables2.Cell(1, 1).Delete(TSDocxEnumerations.wdDeleteCellsEntireColumn());
// tables2.Cell(1, 1).Delete(TSDocxEnumerations.wdDeleteCellsEntireRow());
// tables2.Cell(3, 3).Delete(TSDocxEnumerations.wdDeleteCellsShiftLeft());
// tables2.Cell(1, 2).Delete(TSDocxEnumerations.wdDeleteCellsShiftUp());
// tables2.Cell(5, 3).Delete(TSDocxEnumerations.wdDeleteCellsShiftUp());
// ActiveDocument.Tables(1).Cell(Row: 2, Column: 2).Merge(MergeTo: tables[1].Cell(2, 4));
// ActiveDocument.Tables(2).Cell(2, 2).Merge(ActiveDocument.Tables(2).Cell(3, 4));
// ActiveDocument.Tables(2).Cell(2, 2).Width := 100;
// println("ActiveDocument.Tables(2).Cell(2, 2).Width = {}", ActiveDocument.Tables(2).Cell(2, 2).Width);
// ActiveDocument.Tables(2).Cell(2, 3).WordWrap := true;
// println("ActiveDocument.Tables(2).Cell(2, 3).WordWrap = {}", ActiveDocument.Tables(2).Cell(2, 3).WordWrap);
// ActiveDocument.Tables(2).Cell(1, 1).VerticalAlignment := TSDocxEnumerations.wdCellAlignVerticalBottom();
// ActiveDocument.Tables(2).Cell(1, 2).VerticalAlignment := TSDocxEnumerations.wdCellAlignVerticalCenter();
// ActiveDocument.Tables(2).Cell(2, 2).VerticalAlignment := TSDocxEnumerations.wdCellAlignVerticalTop();
// println("ActiveDocument.Tables(2).Cell(1, 1).VerticalAlignment = {}", ActiveDocument.Tables(2).Cell(1, 1).VerticalAlignment);
// println("ActiveDocument.Tables(2).Cell(1, 2).VerticalAlignment = {}", ActiveDocument.Tables(2).Cell(1, 2).VerticalAlignment);
// println("ActiveDocument.Tables(2).Cell(1, 3).VerticalAlignment = {}", ActiveDocument.Tables(2).Cell(1, 3).VerticalAlignment);
// println("ActiveDocument.Tables(2).Cell(2, 2).VerticalAlignment = {}", ActiveDocument.Tables(2).Cell(2, 2).VerticalAlignment);
// ActiveDocument.Tables(2).Cell(1, 1).TopPadding := 30;
// ActiveDocument.Tables(2).Cell(1, 1).LeftPadding := 25;
// ActiveDocument.Tables(2).Cell(1, 1).BottomPadding := 20;
// ActiveDocument.Tables(2).Cell(1, 1).RightPadding := 15;
// println("ActiveDocument.Tables(2).Cell(1, 1).TopPadding = {}", ActiveDocument.Tables(2).Cell(1, 1).TopPadding);
// println("ActiveDocument.Tables(2).Cell(1, 1).LeftPadding = {}", ActiveDocument.Tables(2).Cell(1, 1).LeftPadding);
// println("ActiveDocument.Tables(2).Cell(1, 1).BottomPadding = {}", ActiveDocument.Tables(2).Cell(1, 1).BottomPadding);
// println("ActiveDocument.Tables(2).Cell(1, 1).RightPadding = {}", ActiveDocument.Tables(2).Cell(1, 1).RightPadding);
// ActiveDocument.Tables(2).Cell(3, 3).Tables(1).AutoFitBehavior(TSDocxEnumerations.wdAutoFitContent());
// ActiveDocument.Tables(2).Cell(3, 3).Tables(1).Cell(1, 1).Delete(TSDocxEnumerations.wdDeleteCellsEntireColumn());
// ActiveDocument.Tables(1).Cell(1, 1).Shading.Texture := TSDocxEnumerations.wdTextureHorizontal();
// ActiveDocument.Tables(3).Cell(2,1).PreferredWidthType := TSDocxEnumerations.wdPreferredWidthAuto;
// ActiveDocument.Tables(3).Cell(2,2).PreferredWidth := 1000;
// println("ActiveDocument.Tables(3).Cell(2,2).PreferredWidth = {}", ActiveDocument.Tables(3).Cell(2,2).PreferredWidth);
// ActiveDocument.Tables(3).Cell(2,1).SetHeight(RowHeight:=100, HeightRule:=TSDocxEnumerations.wdRowHeightAtLeast);
// ActiveDocument.Tables(3).Cell(2,1).HeightRule := TSDocxEnumerations.wdRowHeightExactly();
// ActiveDocument.Tables(3).Cell(2,1).Height := 30;
// println("ActiveDocument.Tables(3).Cell(2,1).Height = {}", ActiveDocument.Tables(3).Cell(2,1).Height);
// println("ActiveDocument.Tables(3).Cell(2,1).HeightRule = {}", ActiveDocument.Tables(3).Cell(2,1).HeightRule);
// println("ActiveDocument.Tables(3).Cell(1,4).Next.ColumnIndex = {}", ActiveDocument.Tables(3).Cell(1,4).Next.ColumnIndex);
// println("ActiveDocument.Tables(3).Cell(1,4).Next.RowIndex = {}", ActiveDocument.Tables(3).Cell(1,4).Next.RowIndex);
// println("ActiveDocument.Tables(3).Cell(2,4).Next.ColumnIndex = {}", ActiveDocument.Tables(3).Cell(2,4).Next);
// println("ActiveDocument.Tables(3).Cell(1,1).Previous.ColumnIndex = {}", ActiveDocument.Tables(3).Cell(1,1).Previous);
// println("ActiveDocument.Tables(3).Cell(2,1).Previous.ColumnIndex = {}", ActiveDocument.Tables(3).Cell(2,1).Previous.ColumnIndex);
// println("ActiveDocument.Tables(3).Cell(2,1).Previous.RowIndex = {}", ActiveDocument.Tables(3).Cell(2,1).Previous.RowIndex);
End;
Function TestTableColumns(application);
Begin
ActiveDocument := application.ActiveDocument;
ActiveDocument.Tables(1).Columns(1).SetWidth(100, TSDocxEnumerations.wdAdjustSameWidth());
ActiveDocument.Tables(3).Columns(2).PreferredWidthType := TSDocxEnumerations.wdPreferredWidthPercent();
ActiveDocument.Tables(3).Columns(2).PreferredWidth := 50;
println("ActiveDocument.Tables(3).Columns(2).PreferredWidth = {}", ActiveDocument.Tables(3).Columns(2).PreferredWidth);
println("ActiveDocument.Tables(3).Columns.Count = {}", ActiveDocument.Tables(3).Columns.Count);
println("ActiveDocument.Tables(3).Rows.Count = {}", ActiveDocument.Tables(3).Rows.Count);
println("ActiveDocument.Tables(3).Cell(1,2).Width = {}", ActiveDocument.Tables(3).Cell(1,2).Width);
println("ActiveDocument.Tables(2).Cell(1,2).Width = {}", ActiveDocument.Tables(2).Cell(1,2).Width);
ActiveDocument.Tables(1).Cell(1, 2).PreferredWidthType := TSDocxEnumerations.wdPreferredWidthPercent();
ActiveDocument.Tables(1).Cell(1, 2).Width := 100;
println("ActiveDocument.Tables(1).Cell(1,2).Width = {}", ActiveDocument.Tables(1).Cell(1,2).Width);
End;
Function TestTableRows();
Begin
// ActiveDocument.Tables(1).Rows.WrapAroundText := true;
// ActiveDocument.Tables(2).Rows.WrapAroundText := false;
// println("Tables(1).Rows.WrapAroundText = {}", ActiveDocument.Tables(1).Rows.WrapAroundText);
// println("Tables(2).Rows.WrapAroundText = {}", ActiveDocument.Tables(2).Rows.WrapAroundText);
// ActiveDocument.Tables(1).Rows.WrapAroundText := false;
// println("Tables(1).Rows.WrapAroundText = {}", ActiveDocument.Tables(1).Rows.WrapAroundText);
End;
Function TestBorders(application);
Begin
ActiveDocument := application.ActiveDocument;
println("\n============== Start TestBorders ==============");
println("Tables(1) will set LineStyle = {}, color = {}", TSDocxEnumerations.wdLineStyleSingle(), TSDocxEnumerations.wdColorLime());
ActiveDocument.Tables(1).Borders(TSDocxEnumerations.wdBorderDiagonalUp()).LineStyle := TSDocxEnumerations.wdLineStyleSingle();
ActiveDocument.Tables(1).Borders(TSDocxEnumerations.wdBorderDiagonalUp()).Color := TSDocxEnumerations.wdColorLime();
println("ActiveDocument.Tables(1).Borders(TSDocxEnumerations.wdBorderDiagonalUp()).LineStyle = {}", ActiveDocument.Tables(1).Borders(TSDocxEnumerations.wdBorderDiagonalUp()).LineStyle);
println("ActiveDocument.Tables(1).Borders(TSDocxEnumerations.wdBorderDiagonalUp()).Color := {}", ActiveDocument.Tables(1).Borders(TSDocxEnumerations.wdBorderDiagonalUp()).Color);
println("\n");
println("Tables(1).Cell(1, 1) will set LineStyle = {}, LineWidth = {}", TSDocxEnumerations.wdLineStyleDot(), TSDocxEnumerations.wdLineWidth025pt());
ActiveDocument.Tables(1).Cell(1, 1).Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineStyle := TSDocxEnumerations.wdLineStyleDot();
ActiveDocument.Tables(1).Cell(1, 1).Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineWidth := TSDocxEnumerations.wdLineWidth025pt();
println("ActiveDocument.Tables(1).Cell(1, 1).Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineStyle = {}", ActiveDocument.Tables(1).Cell(1, 1).Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineStyle);
println("ActiveDocument.Tables(1).Cell(1, 1).Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineWidth = {}", ActiveDocument.Tables(1).Cell(1, 1).Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineWidth);
println("\n");
println("Range(2, 4) will set LineStyle = {}, ColorIndex = {}", TSDocxEnumerations.wdLineStyleTriple(), TSDocxEnumerations.wdBlue());
ActiveDocument.Range(2, 4).Borders(TSDocxEnumerations.wdBorderBottom()).LineStyle := TSDocxEnumerations.wdLineStyleTriple();
ActiveDocument.Range(2, 4).Borders(TSDocxEnumerations.wdBorderBottom()).ColorIndex := TSDocxEnumerations.wdBlue();
println("ActiveDocument.Range(2, 4).Borders(TSDocxEnumerations.wdBorderBottom()).LineStyle = {}", ActiveDocument.Range(2, 4).Borders(TSDocxEnumerations.wdBorderBottom()).LineStyle);
println("ActiveDocument.Range(2, 4).Borders(TSDocxEnumerations.wdBorderBottom()).ColorIndex = {}", ActiveDocument.Range(2, 4).Borders(TSDocxEnumerations.wdBorderBottom()).ColorIndex);
println("\n");
println("Paragraphs(2).Range will set LineStyle = {}", TSDocxEnumerations.wdLineStyleDouble());
ActiveDocument.Paragraphs(2).Range.Borders(TSDocxEnumerations.wdBorderLeft()).LineStyle := TSDocxEnumerations.wdLineStyleDouble();
println("ActiveDocument.Paragraphs(2).Range.Borders(TSDocxEnumerations.wdBorderLeft()).LineStyle = {}", ActiveDocument.Paragraphs(2).Range.Borders(TSDocxEnumerations.wdBorderLeft()).LineStyle);
println("\n");
println("Tables(1).Range wdBorderDiagonalUp will set LineStyle = {}", TSDocxEnumerations.wdLineStyleOutset());
println("Tables(1).Range wdBorderBottom will set LineStyle = {}", TSDocxEnumerations.wdLineStyleDashSmallGap());
ActiveDocument.Tables(1).Range.Borders(TSDocxEnumerations.wdBorderDiagonalUp()).LineStyle := TSDocxEnumerations.wdLineStyleOutset();
ActiveDocument.Tables(1).Range.Borders(TSDocxEnumerations.wdBorderBottom()).LineStyle := TSDocxEnumerations.wdLineStyleDashSmallGap();
println("ActiveDocument.Tables(1).Range.Borders(TSDocxEnumerations.wdBorderDiagonalUp()).LineStyle = {}", ActiveDocument.Tables(1).Range.Borders(TSDocxEnumerations.wdBorderDiagonalUp()).LineStyle);
println("ActiveDocument.Tables(1).Range.Borders(TSDocxEnumerations.wdBorderBottom()).LineStyle = {}", ActiveDocument.Tables(1).Range.Borders(TSDocxEnumerations.wdBorderBottom()).LineStyle);
println("\n");
println("Tables(1).Cell(1, 1).Range wdBorderVertical will set LineStyle = {}", TSDocxEnumerations.wdLineStyleEmboss3D());
println("Tables(1).Cell(1, 1).Range wdBorderDiagonalDown will set LineStyle = {}", TSDocxEnumerations.wdLineStyleEngrave3D());
ActiveDocument.Tables(1).Cell(1, 1).Range.Borders(TSDocxEnumerations.wdBorderVertical()).LineStyle := TSDocxEnumerations.wdLineStyleEmboss3D();
ActiveDocument.Tables(1).Cell(1, 1).Range.Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineStyle := TSDocxEnumerations.wdLineStyleEngrave3D();
println("ActiveDocument.Tables(1).Cell(1, 1).Range.Borders(TSDocxEnumerations.wdBorderVertical()).LineStyle = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Borders(TSDocxEnumerations.wdBorderVertical()).LineStyle);
println("ActiveDocument.Tables(1).Cell(1, 1).Range.Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineStyle = {}", ActiveDocument.Tables(1).Cell(1, 1).Range.Borders(TSDocxEnumerations.wdBorderDiagonalDown()).LineStyle);
println("============== End TestBorders ==============\n");
End;