新增父类TSVbaBase调整前

This commit is contained in:
csh 2023-10-20 11:06:08 +08:00
parent fec9adacd3
commit cdf4b39350
26 changed files with 3493 additions and 31 deletions

370
docx/TSDocxApplication.tsf Normal file
View File

@ -0,0 +1,370 @@
Type TSDocxApplication = Class(TSVbaBase)
public
Function Create();
Function Init();
public
Function Activate();
Function AddAddress(TagID, Value);
Function AutomaticChange();
Function BuildKeyCode(Arg1, Arg2, Arg3, Arg4);
Function CentimetersToPoints(Centimeters);
Function ChangeFileOpenDirectory(Path);
Function CheckGrammar(String);
Function CheckSpelling(Word, CustomDictionary, IgnoreUppercase, MainDictionary, CustomDictionary2, CustomDictionary3, CustomDictionary4, CustomDictionary5, CustomDictionary6, CustomDictionary7, CustomDictionary8, CustomDictionary9, CustomDictionary10);
Function CleanString(String);
Function CompareDocuments(OriginalDocument, RevisedDocument, Destination, Granularity, CompareFormatting, CompareCaseChanges, CompareWhitespace, CompareTables, CompareHeaders, CompareFootnotes, CompareTextboxes, CompareFields, CompareComments, CompareMoves, RevisedAuthor, IgnoreAllComparisonWarnings);
Function DDEExecute(Channel, Command);
Function DDEInitiate(App, Topic);
Function DDEPoke(Channel, Item, Data);
Function DDERequest(Channel, Item);
Function DDETerminate(Channel);
Function DDETerminateAll();
Function DefaultWebOptions();
Function GetAddress(Name, AddressProperties, UseAutoText, DisplaySelectDialog, SelectDialog, CheckNamesDialog, RecentAddressesChoice, UpdateRecentAddresses);
Function GetDefaultTheme(DocumentType);
Function GetSpellingSuggestions(Word, CustomDictionary, IgnoreUppercase, MainDictionary, SuggestionMode, CustomDictionary2, CustomDictionary3, CustomDictionary4, CustomDictionary5, CustomDictionary6, CustomDictionary7, CustomDictionary8, CustomDictionary9, CustomDictionary10);
Function GoBack();
Function GoForward();
Function Help(HelpType);
Function InchesToPoints(Inches);
Function Keyboard(LangId)
Function KeyboardBidi();
Function KeyboardLatin();
Function KeyString(KeyCode, KeyCode2);
Function LinesToPoints(Lines);
Function ListCommands(ListAllCommands);
Function LoadMasterList(FileName);
Function LookupNameProperties(Name);
Function MergeDocuments(OriginalDocument, RevisedDocument, Destination, Granularity, CompareFormatting, CompareCaseChanges, CompareWhitespace, CompareTables, CompareHeaders, CompareFootnotes, CompareTextboxes, CompareFields, CompareComments, OriginalAuthor, RevisedAuthor, FormatFrom);
Function MillimetersToPoints(Millimeters);
Function Move(Left, Top);
Function NewWindow();
Function OnTime(When, Name, Tolerance);
Function OrganizerCopy(Source, Destination, Name, Object);
Function OrganizerDelete(Source, Name, Object);
Function OrganizerRename(Source, Name, NewName, Object);
Function PicasToPoints(Picas);
Function PixelsToPoints(Pixels, fVertical);
Function PointsToCentimeters(Points);
Function PointsToInches(Points);
Function PointsToLines(Points);
Function PointsToMillimeters(Points);
Function PointsToPicas(Points);
Function PointsToPixels(Points, fVertical);
Function PrintOut(Background, Append, Range, OutputFileName, From_, To_, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight);
Function ProductCode();
Function PutFocusInMailHeader();
Function Quit(SaveChanges, OriginalFormat, RouteDocument);
Function Repeat(Times);
Function ResetIgnoreAll();
Function Resize (Width, Height);
Function Run(MacroName, varg1, varg2, varg3, varg4, varg5, varg6, varg7, varg8, varg9, varg10, varg11, varg12, varg13, varg14, varg15, varg16, varg17, varg18, varg19, varg20, varg21, varg22, varg23, varg24, varg25, varg26, varg27, varg28, varg29, varg30);
Function ScreenRefresh();
Function SetDefaultTheme(Name, DocumentType);
Function ShowClipboard();
Function SubstituteFont(UnavailableFont, SubstituteFont);
Function ToggleKeyboard();
property ActiveDocument read ReadActiveDocument;
property ActiveEncryptionSession read ReadActiveEncryptionSession;
property ActivePrinter read ReadActivePrinter write WriteActivePrinter;
property ActiveProtectedViewWindow read ReadActiveProtectedViewWindow;
property ActiveWindow read ReadActiveWindow;
property AddIns read ReadAddIns;
property ArbitraryXMLSupportAvailable read ReadArbitraryXMLSupportAvailable;
property Assistance read ReadAssistance;
property AutoCaptions read ReadAutoCaptions;
property AutoCorrect read ReadAutoCorrect;
property AutoCorrectEmail read ReadAutoCorrectEmail;
property AutomationSecurity read ReadAutomationSecurity write WriteAutomationSecurity;
property BackgroundPrintingStatus read ReadBackgroundPrintingStatus;
property BackgroundSavingStatus read ReadBackgroundSavingStatus;
property Bibliography read ReadBibliography;
property BrowseExtraFileTypes read ReadBrowseExtraFileTypes write WriteBrowseExtraFileTypes;
property Browser read ReadBrowser;
property Build read ReadBuild;
property CapsLock read ReadCapsLock;
property Caption read ReadCaption write WriteCaption;
property CaptionLabels read ReadCaptionLabels;
property ChartDataPointTrack read ReadChartDataPointTrack write WriteChartDataPointTrack;
property CheckLanguage read ReadCheckLanguage write WriteCheckLanguage;
property COMAddIns read ReadCOMAddIns;
property CommandBars read ReadCommandBars;
property CustomDictionaries read ReadCustomDictionaries;
property CustomizationContext read ReadCustomizationContext write WriteCustomizationContext;
property DefaultLegalBlackline read ReadDefaultLegalBlackline write WriteDefaultLegalBlackline;
property DefaultSaveFormat read ReadDefaultSaveFormat write WriteDefaultSaveFormat;
property DefaultTableSeparator read ReadDefaultTableSeparator write WriteDefaultTableSeparator;
property Dialogs read ReadDialogs;
property DisplayAlerts read ReadDisplayAlerts write WriteDisplayAlerts;
property DisplayAutoCompleteTips read ReadDisplayAutoCompleteTips write WriteDisplayAutoCompleteTips;
property DisplayDocumentInformationPanel read ReadDisplayDocumentInformationPanel write WriteDisplayDocumentInformationPanel;
property DisplayRecentFiles read ReadDisplayRecentFiles write WriteDisplayRecentFiles;
property DisplayScreenTips read ReadDisplayScreenTips write WriteDisplayScreenTips;
property DisplayScrollBars read ReadDisplayScrollBars write WriteDisplayScrollBars;
property Documents read ReadDocuments;
property DontResetInsertionPointProperties read ReadDontResetInsertionPointProperties write WriteDontResetInsertionPointProperties;
property EmailOptions read ReadEmailOptions;
property EmailTemplate read ReadEmailTemplate write WriteEmailTemplate;
property EnableCancelKey read ReadEnableCancelKey write WriteEnableCancelKey;
property FeatureInstall read ReadFeatureInstall write WriteFeatureInstall;
property FileConverters read ReadFileConverters;
property FileDialog read ReadFileDialog;
property FileValidation read ReadFileValidation write WriteFileValidation;
property FindKey read ReadFindKey;
property FocusInMailHeader read ReadFocusInMailHeader;
property FontNames read ReadFontNames;
property HangulHanjaDictionaries read ReadHangulHanjaDictionaries;
property Height read ReadHeight write WriteHeight;
property International read ReadInternational;
property IsObjectValid read ReadIsObjectValid;
property IsSandboxed read ReadIsSandboxed;
property KeyBindings read ReadKeyBindings;
property KeysBoundTo read ReadKeysBoundTo;
property LandscapeFontNames read ReadLandscapeFontNames;
property Language read ReadLanguage;
property Languages read ReadLanguages;
property LanguageSettings read ReadLanguageSettings;
property Left read ReadLeft write WriteLeft;
property ListGalleries read ReadListGalleries;
property MacroContainer read ReadMacroContainer;
property MailingLabel read ReadMailingLabel;
property MailMessage read ReadMailMessage;
property MailSystem read ReadMailSystem;
property MAPIAvailable read ReadMAPIAvailable;
property MathCoprocessorAvailable read ReadMathCoprocessorAvailable;
property MouseAvailable read ReadMouseAvailable;
property Name read ReadName;
property NewDocument read ReadNewDocument;
property NormalTemplate read ReadNormalTemplate;
property NumLock read ReadNumLock;
property OMathAutoCorrect read ReadOMathAutoCorrect;
property OpenAttachmentsInFullScreen read ReadOpenAttachmentsInFullScreen write WriteOpenAttachmentsInFullScreen;
property Options read ReadOptions;
property Path read ReadPath;
property PathSeparator read ReadPathSeparator;
property PickerDialog read ReadPickerDialog;
property PortraitFontNames read ReadPortraitFontNames;
property PrintPreview read ReadPrintPreview write WritePrintPreview;
property ProtectedViewWindows read ReadProtectedViewWindows;
property RecentFiles read ReadRecentFiles;
property RestrictLinkedStyles read ReadRestrictLinkedStyles write WriteRestrictLinkedStyles;
property ScreenUpdating read ReadScreenUpdating write WriteScreenUpdating;
property Selection read ReadSelection;
property SensitivityLabelPolicy read ReadSensitivityLabelPolicy;
property ShowStartupDialog read ReadShowStartupDialog write WriteShowStartupDialog;
property ShowStylePreviews read ReadShowStylePreviews write WriteShowStylePreviews;
property ShowVisualBasicEditor read ReadShowVisualBasicEditor write WriteShowVisualBasicEditor;
property SmartArtColors read ReadSmartArtColors;
property SmartArtLayouts read ReadSmartArtLayouts;
property SmartArtQuickStyles read ReadSmartArtQuickStyles;
property SpecialMode read ReadSpecialMode;
property StartupPath read ReadStartupPath write WriteStartupPath;
property SynonymInfo read ReadSynonymInfo;
property System read ReadSystem;
property TaskPanes read ReadTaskPanes;
property Tasks read ReadTasks;
property Templates read ReadTemplates;
property Top read ReadTop write WriteTop;
property UndoRecord read ReadUndoRecord;
property UsableHeight read ReadUsableHeight;
property UsableWidth read ReadUsableWidth;
property UserAddress read ReadUserAddress write WriteUserAddress;
property UserControl read ReadUserControl;
property UserInitials read ReadUserInitials write WriteUserInitials;
property UserName read ReadUserName write WriteUserName;
property VBE read ReadVBE;
property Version read ReadVersion;
property Visible read ReadVisible write WriteVisible;
property Width read ReadWidth write WriteWidth;
property Windows read ReadWindows;
property WindowState read ReadWindowState write WriteWindowState;
property WordBasic read ReadWordBasic;
property XMLNamespaces read ReadXMLNamespaces;
Function ReadXMLNamespaces();
Function ReadWordBasic();
Function WriteWindowState(value);
Function ReadWindowState();
Function ReadWindows();
Function WriteWidth(value);
Function ReadWidth();
Function WriteVisible(value);
Function ReadVisible();
Function ReadVersion();
Function ReadVBE();
Function WriteUserName(value);
Function ReadUserName();
Function WriteUserInitials(value);
Function ReadUserInitials();
Function ReadUserControl();
Function WriteUserAddress(value);
Function ReadUserAddress();
Function ReadUsableWidth();
Function ReadUsableHeight();
Function ReadUndoRecord();
Function WriteTop(value);
Function ReadTop();
Function ReadTemplates();
Function ReadTasks();
Function ReadTaskPanes();
Function ReadSystem();
Function ReadSynonymInfo();
Function WriteStartupPath(value);
Function ReadStartupPath();
Function ReadSpecialMode();
Function ReadSmartArtQuickStyles();
Function ReadSmartArtLayouts();
Function ReadSmartArtColors();
Function WriteShowVisualBasicEditor(value);
Function ReadShowVisualBasicEditor();
Function WriteShowStylePreviews(value);
Function ReadShowStylePreviews();
Function WriteShowStartupDialog(value);
Function ReadShowStartupDialog();
Function ReadSensitivityLabelPolicy();
Function ReadSelection();
Function WriteScreenUpdating(value);
Function ReadScreenUpdating();
Function WriteRestrictLinkedStyles(value);
Function ReadRestrictLinkedStyles();
Function ReadRecentFiles();
Function ReadProtectedViewWindows();
Function WritePrintPreview(value);
Function ReadPrintPreview();
Function ReadPortraitFontNames();
Function ReadPickerDialog();
Function ReadPathSeparator();
Function ReadPath();
Function ReadOptions();
Function WriteOpenAttachmentsInFullScreen(value);
Function ReadOpenAttachmentsInFullScreen();
Function ReadOMathAutoCorrect();
Function ReadNumLock();
Function ReadNormalTemplate();
Function ReadNewDocument();
Function ReadName();
Function ReadMouseAvailable();
Function ReadMathCoprocessorAvailable();
Function ReadMAPIAvailable();
Function ReadMailSystem();
Function ReadMailMessage();
Function ReadMailingLabel();
Function ReadMacroContainer();
Function ReadListGalleries();
Function WriteLeft(value);
Function ReadLeft();
Function ReadLanguageSettings();
Function ReadLanguages();
Function ReadLanguage();
Function ReadLandscapeFontNames();
Function ReadKeysBoundTo();
Function ReadKeyBindings();
Function ReadIsSandboxed();
Function ReadIsObjectValid();
Function ReadInternational();
Function WriteHeight(value);
Function ReadHeight();
Function ReadHangulHanjaDictionaries();
Function ReadFontNames();
Function ReadFocusInMailHeader();
Function ReadFindKey();
Function WriteFileValidation(value);
Function ReadFileValidation();
Function ReadFileDialog();
Function ReadFileConverters();
Function WriteFeatureInstall(value);
Function ReadFeatureInstall();
Function WriteEnableCancelKey(value);
Function ReadEnableCancelKey();
Function WriteEmailTemplate(value);
Function ReadEmailTemplate();
Function ReadEmailOptions();
Function WriteDontResetInsertionPointProperties(value);
Function ReadDontResetInsertionPointProperties();
Function ReadDocuments();
Function WriteDisplayScrollBars(value);
Function ReadDisplayScrollBars();
Function WriteDisplayScreenTips(value);
Function ReadDisplayScreenTips();
Function WriteDisplayRecentFiles(value);
Function ReadDisplayRecentFiles();
Function WriteDisplayDocumentInformationPanel(value);
Function ReadDisplayDocumentInformationPanel();
Function WriteDisplayAutoCompleteTips(value);
Function ReadDisplayAutoCompleteTips();
Function WriteDisplayAlerts(value);
Function ReadDisplayAlerts();
Function ReadDialogs();
Function WriteDefaultTableSeparator(value);
Function ReadDefaultTableSeparator();
Function WriteDefaultSaveFormat(value);
Function ReadDefaultSaveFormat();
Function WriteDefaultLegalBlackline(value);
Function ReadDefaultLegalBlackline();
Function WriteCustomizationContext(value);
Function ReadCustomizationContext();
Function ReadCustomDictionaries();
Function ReadCommandBars();
Function ReadCOMAddIns();
Function WriteCheckLanguage(value);
Function ReadCheckLanguage();
Function WriteChartDataPointTrack(value);
Function ReadChartDataPointTrack();
Function ReadCaptionLabels();
Function WriteCaption(value);
Function ReadCaption();
Function ReadCapsLock();
Function ReadBuild();
Function ReadBrowser();
Function WriteBrowseExtraFileTypes(value);
Function ReadBrowseExtraFileTypes();
Function ReadBibliography();
Function ReadBackgroundSavingStatus();
Function ReadBackgroundPrintingStatus();
Function WriteAutomationSecurity(value);
Function ReadAutomationSecurity();
Function ReadAutoCorrectEmail();
Function ReadAutoCorrect();
Function ReadAutoCaptions();
Function ReadAssistance();
Function ReadArbitraryXMLSupportAvailable();
Function ReadAddIns();
Function ReadActiveWindow();
Function ReadActiveProtectedViewWindow();
Function WriteActivePrinter(value);
Function ReadActivePrinter();
Function ReadActiveEncryptionSession();
Function ReadActiveDocument();
private
documents_;
End;
// ============== 实现 ================= //
Function TSDocxApplication.Create();
Begin
Class(TSVbaBase).Create(self, self, random(10000000));
Init();
End;
Function TSDocxApplication.Init();
Begin
documents_ := new TSDocxDocuments(application_, self, creator_);
End;
// property
Function TSDocxApplication.ReadDocuments(Index)
Begin
if ifnil(Index) then return documents_;
return documents_[Index];
End;
Function TSDocxApplication.ReadActiveDocument();
Begin
return documents_.GetActivation();
End;

151
docx/TSDocxBorder.tsf Normal file
View File

@ -0,0 +1,151 @@
Type TSDocxBorder = Class
public
Function Create(application, borders, borderType);
private
application_;
border_;
public
property Application read ReadApplication;
property ArtStyle read ReadArtStyle write WriteArtStyle;
property ArtWidth read ReadArtWidth write WriteArtWidth;
property Color read ReadColor write WriteColor;
property ColorIndex read ReadColorIndex write WriteColorIndex;
property Creator read ReadCreator;
property Inside read ReadInside;
property LineStyle read ReadLineStyle write WriteLineStyle;
property LineWidth read ReadLineWidth write WriteLineWidth;
property Parent read ReadParent;
property Visible read ReadVisible write WriteVisible;
Function WriteVisible();
Function ReadVisible();
Function ReadParent();
Function WriteLineWidth();
Function ReadLineWidth();
Function WriteLineStyle(value);virtual;
Function ReadLineStyle();
Function ReadInside();
Function ReadCreator();
Function WriteColorIndex();
Function ReadColorIndex();
Function WriteColor();
Function ReadColor();
Function WriteArtWidth();
Function ReadArtWidth();
Function WriteArtStyle();
Function ReadArtStyle();
Function ReadApplication();
End;
// ============== 实现 ================= //
Function TSDocxBorder.Create(application, borders, borderType);
Begin
application_ := application;
case borderType of
Class(TSDocxEnumerations).wdBorderBottom():
border_ := borders.Bottom;
Class(TSDocxEnumerations).wdBorderDiagonalDown():
border_ := borders.tl2br;
Class(TSDocxEnumerations).wdBorderDiagonalUp():
border_ := borders.tr2bl;
Class(TSDocxEnumerations).wdBorderHorizontal():
border_ := borders.InsideH;
Class(TSDocxEnumerations).wdBorderLeft():
border_ := borders.Left;
Class(TSDocxEnumerations).wdBorderRight():
border_ := borders.Right;
Class(TSDocxEnumerations).wdBorderTop():
border_ := borders.Top;
Class(TSDocxEnumerations).wdBorderVertical():
border_ := borders.InsideV;
end;
End;
// property
Function TSDocxBorder.WriteLineStyle(value);virtual;
Begin
case value of
class(TSDocxEnumerations).wdLineStyleDashDot():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleDashDotDot():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleDashDotStroked():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleDashLargeGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleDashSmallGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleDot():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleDouble():
border_.Val := "double";
class(TSDocxEnumerations).wdLineStyleDoubleWavy():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleEmboss3D():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleEngrave3D():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleInset():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleNone():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleOutset():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleSingle():
border_.Val := "single";
class(TSDocxEnumerations).wdLineStyleSingleWavy():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThickThinLargeGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThickThinMedGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThickThinSmallGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThinThickLargeGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThinThickMedGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThinThickSmallGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThinThickThinLargeGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThinThickThinMedGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleThinThickThinSmallGap():
border_.Val := "nil";
class(TSDocxEnumerations).wdLineStyleTriple():
border_.Val := "nil";
end;
border_.Update();
End;

View File

@ -0,0 +1,37 @@
Type TSDocxBorderTable = Class(TSDocxBorder)
public
Function Create(application, table, borderType);
public
Function WriteLineStyle(value);override;
private
application_;
table_;
border_type_;
End;
// ============== 实现 ================= //
Function TSDocxBorderTable.Create(application, table, borderType);
Begin
application_ := application;
table_ := table;
border_type_ := borderType;
End;
// property
Function TSDocxBorderTable.WriteLineStyle(value);override;
Begin
for r:=1 to table_.Rows() do
begin
for c:=1 to table_.Cols() do
begin
cell := new TSDocxCell(application_, table_, r, c);
cell.Borders(border_type_).LineStyle := value;
end
end
End;

112
docx/TSDocxBorders.tsf Normal file
View File

@ -0,0 +1,112 @@
Type TSDocxBorders = Class
public
Function Create(application, borders);
Function Operator[](index);virtual;
private
application_;
borders_;
public
Function ApplyPageBordersToAllSections();
Function Item(Index);
property AlwaysInFront read ReadAlwaysInFront write WriteAlwaysInFront;
property Application read ReadApplication;
property Count read ReadCount;
property Creator read ReadCreator;
property DistanceFrom read ReadDistanceFrom write WriteDistanceFrom;
property DistanceFromBottom read ReadDistanceFromBottom write WriteDistanceFromBottom;
property DistanceFromLeft read ReadDistanceFromLeft write WriteDistanceFromLeft;
property DistanceFromRight read ReadDistanceFromRight write WriteDistanceFromRight;
property DistanceFromTop read ReadDistanceFromTop write WriteDistanceFromTop;
property Enable read ReadEnable write WriteEnable;
property EnableFirstPageInSection read ReadEnableFirstPageInSection write WriteEnableFirstPageInSection;
property EnableOtherPagesInSection read ReadEnableOtherPagesInSection write WriteEnableOtherPagesInSection;
property HasHorizontal read ReadHasHorizontal;
property HasVertical read ReadHasVertical;
property InsideColor read ReadInsideColor write WriteInsideColor;
property InsideColorIndex read ReadInsideColorIndex write WriteInsideColorIndex;
property InsideLineStyle read ReadInsideLineStyle write WriteInsideLineStyle;
property InsideLineWidth read ReadInsideLineWidth write WriteInsideLineWidth;
property JoinBorders read ReadJoinBorders write WriteJoinBorders;
property OutsideColor read ReadOutsideColor write WriteOutsideColor;
property OutsideColorIndex read ReadOutsideColorIndex write WriteOutsideColorIndex;
property OutsideLineStyle read ReadOutsideLineStyle write WriteOutsideLineStyle;
property OutsideLineWidth read ReadOutsideLineWidth write WriteOutsideLineWidth;
property Parent read ReadParent;
property Shadow read ReadShadow write WriteShadow;
property SurroundFooter read ReadSurroundFooter write WriteSurroundFooter;
property SurroundHeader read ReadSurroundHeader write WriteSurroundHeader;
Function WriteSurroundHeader();
Function ReadSurroundHeader();
Function WriteSurroundFooter();
Function ReadSurroundFooter();
Function WriteShadow();
Function ReadShadow();
Function ReadParent();
Function WriteOutsideLineWidth();
Function ReadOutsideLineWidth();
Function WriteOutsideLineStyle();
Function ReadOutsideLineStyle();
Function WriteOutsideColorIndex();
Function ReadOutsideColorIndex();
Function WriteOutsideColor();
Function ReadOutsideColor();
Function WriteJoinBorders();
Function ReadJoinBorders();
Function WriteInsideLineWidth();
Function ReadInsideLineWidth();
Function WriteInsideLineStyle();
Function ReadInsideLineStyle();
Function WriteInsideColorIndex();
Function ReadInsideColorIndex();
Function WriteInsideColor();
Function ReadInsideColor();
Function ReadHasVertical();
Function ReadHasHorizontal();
Function WriteEnableOtherPagesInSection();
Function ReadEnableOtherPagesInSection();
Function WriteEnableFirstPageInSection();
Function ReadEnableFirstPageInSection();
Function WriteEnable();
Function ReadEnable();
Function WriteDistanceFromTop();
Function ReadDistanceFromTop();
Function WriteDistanceFromRight();
Function ReadDistanceFromRight();
Function WriteDistanceFromLeft();
Function ReadDistanceFromLeft();
Function WriteDistanceFromBottom();
Function ReadDistanceFromBottom();
Function WriteDistanceFrom();
Function ReadDistanceFrom();
Function ReadCreator();
Function ReadCount();
Function ReadApplication();
Function WriteAlwaysInFront();
Function ReadAlwaysInFront();
End;
// ============== 实现 ================= //
Function TSDocxBorders.Create(application, borders);
Begin
application_ := application;
borders_ := borders;
End;
Function Operator TSDocxBorders.[](index);virtual;
Begin
return new TSDocxBorder(application_, borders_, index);
End;
// function
Function TSDocxBorders.Item(Index);
Begin
return self[Index];
End;
// property

View File

@ -0,0 +1,24 @@
Type TSDocxBordersTable = Class(TSDocxBorders)
public
Function Create(application, table);
Function Operator[](index);overload;
private
application_;
table_;
End;
// ============== 实现 ================= //
Function TSDocxBordersTable.Create(application, table);
Begin
application_ := application;
table_ := table;
End;
Function Operator TSDocxBordersTable.[](index);overload;
Begin
return new TSDocxBorderTable(application_, table_, index);
End;

373
docx/TSDocxCell.tsf Normal file
View File

@ -0,0 +1,373 @@
Type TSDocxCell = Class
public
Function Create(application, table, row, col);
Function Init();
private
Function GetCell();
Function SetCellTcPrWidth(row, col, widthValue, widthType);
private
application_;
table_; // TOfficeObj("TTable")
row_;
column_;
tcpr_; // TOfficeObj("TwTcPr")
cell_; // TOfficeObj("TCell")
min_dxa_width_; // 最小宽度 321
public
Function AutoSum();
Function Delete(ShiftCells);
Function Formula(Formula, NumFormat);
Function Merge(MergeTo);
Function Select();
Function SetHeight(RowHeight, HeightRule);
Function SetWidth(ColumnWidth, RulerStyle);
Function Split(NumRows, NumColumns);
property Application read ReadApplication;
property Borders read ReadBorders;
property BottomPadding read ReadBottomPadding write WriteBottomPadding;
property Column read ReadColumn;
property ColumnIndex read ReadColumnIndex;
property Creator read ReadCreator;
property FitText read ReadFitText write WriteFitText;
property Height read ReadHeight write WriteHeight;
property HeightRule read ReadHeightRule write WriteHeightRule;
property ID read ReadID write WriteID;
property LeftPadding read ReadLeftPadding write WriteLeftPadding;
property NestingLevel read ReadNestingLevel;
property Next read ReadNext;
property Parent read ReadParent;
property PreferredWidth read ReadPreferredWidth write WritePreferredWidth;
property PreferredWidthType read ReadPreferredWidthType write WritePreferredWidthType;
property Previous read ReadPrevious;
property Range read ReadRange;
property RightPadding read ReadRightPadding write WriteRightPadding;
property Row read ReadRow;
property RowIndex read ReadRowIndex;
property Shading read ReadShading;
property Tables read ReadTables;
property TopPadding read ReadTopPadding write WriteTopPadding;
property VerticalAlignment read ReadVerticalAlignment write WriteVerticalAlignment;
property Width read ReadWidth write WriteWidth;
property WordWrap read ReadWordWrap write WriteWordWrap;
Function WriteWordWrap(wrap);
Function ReadWordWrap();
Function WriteWidth(width);
Function ReadWidth();
Function WriteVerticalAlignment(alignment);
Function ReadVerticalAlignment();
Function WriteTopPadding(top);
Function ReadTopPadding();
Function ReadTables(index);
Function ReadShading();
Function ReadRowIndex();
Function ReadRow();
Function WriteRightPadding(right);
Function ReadRightPadding();
Function ReadRange();
Function ReadPrevious();
Function WritePreferredWidthType(value);
Function ReadPreferredWidthType();
Function WritePreferredWidth(value);
Function ReadPreferredWidth();
Function ReadParent();
Function ReadNext();
Function ReadNestingLevel();
Function WriteLeftPadding(left);
Function ReadLeftPadding();
Function WriteID();
Function ReadID();
Function WriteHeightRule();
Function ReadHeightRule();
Function WriteHeight();
Function ReadHeight();
Function WriteFitText();
Function ReadFitText();
Function ReadCreator();
Function ReadColumnIndex();
Function ReadColumn();
Function WriteBottomPadding(bottom);
Function ReadBottomPadding();
Function ReadBorders(index);
Function ReadApplication();
End;
// ============== 实现 ================= //
Function TSDocxCell.Create(application, table, row, column);
Begin
application_ := application;
table_ := table;
row_ := row;
column_ := column;
min_dxa_width_ := 321;
Init();
End;
Function TSDocxCell.Init();
Begin
cell := table_.GetCells()[row_-1, column_-1];
if not ifnil(cell) then
begin
tcpr_node := class(TSXml).GetNode(cell[0], "w:tcPr", "first");
tcpr_ := TOfficeObj("TwTcPr");
tcpr_.InitRootNode(tcpr_node);
end
End;
Function TSDocxCell.GetCell();
Begin
if ifObj(cell_) then return cell_;
cell_ := table_.Cell(row_, column_);
return cell_;
End;
Function TSDocxCell.SetCellTcPrWidth(row, col, widthValue, widthType);
Begin
cell := table_.GetCells()[row-1, col-1];
if ifnil(cell) then return;
tcpr_node := class(TSXml).GetNode(cell[0], "w:tcPr", "first");
tcpr_obj := TOfficeObj("TwTcPr");
tcpr_obj.InitRootNode(tcpr_node);
tcpr_obj.Width := widthValue;
tcpr_obj.Type := widthType;
tcpr_obj.Update();
End;
// function
Function TSDocxCell.Delete(ShiftCells);
Begin
if ifnil(ShiftCells) then ShiftCells := class(TSDocxEnumerations).wdDeleteCellsShiftLeft();
case ShiftCells of
class(TSDocxEnumerations).wdDeleteCellsEntireColumn():
table_.DeleteCell(nil, column_);
class(TSDocxEnumerations).wdDeleteCellsEntireRow():
table_.DeleteCell(row_, nil);
class(TSDocxEnumerations).wdDeleteCellsShiftLeft():
table_.DeleteCell(row_, column_);
class(TSDocxEnumerations).wdDeleteCellsShiftUp():
table_.DeleteCell(row_, column_, 0);
end;
End;
Function TSDocxCell.Merge(MergeTo);
Begin
table_.Merge(self.RowIndex, self.ColumnIndex, MergeTo.RowIndex, MergeTo.ColumnIndex, false);
End;
// property
Function TSDocxCell.ReadColumnIndex();
Begin
return column_;
End;
Function TSDocxCell.ReadColumn();
Begin
return new TSDocxColumn(application_, table_, column_);
End;
Function TSDocxCell.ReadRowIndex();
Begin
return row_;
End;
// VBA width=100xml是2000
Function TSDocxCell.WriteWidth(width);
Begin
tcpr_.Width := width * 20;
tcpr_.Type := "dxa";
tcpr_.Update();
End;
Function TSDocxCell.ReadWidth();
Begin
return tcpr_.Value("width") / 20;
End;
Function TSDocxCell.WriteWordWrap(wrap);
Begin
tcpr_.noWrap := wrap ? 0 : 1;
tcpr_.Update();
End;
Function TSDocxCell.ReadWordWrap();
Begin
return tcpr_.Value("noWrap") ? false : true;
End;
Function TSDocxCell.WriteVerticalAlignment(alignment);
Begin
case alignment of
class(TSDocxEnumerations).wdCellAlignVerticalBottom():
begin
tcpr_.vAlign := "bottom";
tcpr_.Update();
end
class(TSDocxEnumerations).wdCellAlignVerticalCenter():
begin
tcpr_.vAlign := "center";
tcpr_.Update();
end
class(TSDocxEnumerations).wdCellAlignVerticalTop():
begin
tcpr_.vAlign := "top";
tcpr_.Update();
end;
end;
End;
Function TSDocxCell.ReadVerticalAlignment();
Begin
alignment := tcpr_.Value("vAlign");
case alignment of
"bottom": return class(TSDocxEnumerations).wdCellAlignVerticalBottom();
"center": return class(TSDocxEnumerations).wdCellAlignVerticalCenter();
else return class(TSDocxEnumerations).wdCellAlignVerticalTop();
end;
End;
Function TSDocxCell.WriteTopPadding(top);
Begin
tcpr_.CellMar.Top := 20 * top;
tcpr_.CellMar.TopType := "dxa";
tcpr_.Update();
End;
Function TSDocxCell.ReadTopPadding();
Begin
return tcpr_.CellMar.Value("Top") / 20;
End;
Function TSDocxCell.WriteLeftPadding(left);
Begin
tcpr_.CellMar.Left := 20 * left;
tcpr_.CellMar.LeftType := "dxa";
tcpr_.Update();
End;
Function TSDocxCell.ReadLeftPadding();
Begin
return tcpr_.CellMar.Value("Left") / 20;
End;
Function TSDocxCell.WriteBottomPadding(bottom);
Begin
tcpr_.CellMar.Bottom := 20 * bottom;
tcpr_.CellMar.BottomType := "dxa";
tcpr_.Update();
End;
Function TSDocxCell.ReadBottomPadding();
Begin
return tcpr_.CellMar.Value("Bottom") / 20;
End;
Function TSDocxCell.WriteRightPadding(right);
Begin
tcpr_.CellMar.Right := 20 * right;
tcpr_.CellMar.RightType := "dxa";
tcpr_.Update();
End;
Function TSDocxCell.ReadRightPadding();
Begin
return tcpr_.CellMar.Value("Right") / 20;
End;
Function TSDocxCell.ReadTables(index);
Begin
tables_obj := new TSDocxTables(application_, GetCell());
return ifnil(index) ? tables_obj : tables_obj[index];
End;
Function TSDocxCell.ReadShading();
Begin
return new TSDocxShading(application_, tcpr_);
End;
Function TSDocxCell.ReadBorders(index);
Begin
obj := new TSDocxBorders(application_, tcpr_.Borders);
return ifnil(index) ? obj : obj[index];
End;
Function TSDocxCell.WritePreferredWidthType(value);
Begin
width_value := nil;
width_type := nil;
case value of
class(TSDocxEnumerations).wdPreferredWidthAuto():
begin
table_.TblPr.Width := 0;
table_.TblPr.WidthType := "auto";
table_.TblPr.Update();
width_value := 0;
width_type := "auto";
end
class(TSDocxEnumerations).wdPreferredWidthPercent():
begin
table_.TblPr.Width := 5000;
table_.TblPr.WidthType := "pct";
table_.TblPr.Update();
width_value := integer(5000 / table_.Cols());
width_type := "pct";
end
class(TSDocxEnumerations).wdPreferredWidthPoints():
begin
width_value := nil;
width_type := "dxa";
end
end;
if ifnil(width_value) and ifnil(width_type) then return;
for r:=1 to table_.Rows() do
for c:=1 to table_.Cols() do
SetCellTcPrWidth(r, c, width_value, width_type);
End;
Function TSDocxCell.ReadPreferredWidthType();
Begin
width_type := tcpr_.Value("Type");
case width_type of
"auto": return class(TSDocxEnumerations).wdPreferredWidthAuto();
"dxa": return class(TSDocxEnumerations).wdPreferredWidthPoints();
"pct": return class(TSDocxEnumerations).wdPreferredWidthPercent();
end;
End;
Function TSDocxCell.WritePreferredWidth(value);
Begin
width_type := self.PreferredWidthType;
width_value := 0;
case width_type of
class(TSDocxEnumerations).wdPreferredWidthAuto(),
class(TSDocxEnumerations).wdPreferredWidthPoints():
begin
width_type := "dxa";
width_value := 20 * value;
if width_type > min_dxa_width_ then width_type := min_dxa_width_;
SetCellTcPrWidth(row_, column_, width_value, width_type);
end
class(TSDocxEnumerations).wdPreferredWidthPercent():
begin
width_type := "pct";
if value < 0 or value > 100 then return;
width_value := 50 * value;
SetCellTcPrWidth(row_, column_, width_value, width_type);
end
end;
End;
Function TSDocxCell.ReadPreferredWidth();
Begin
width_type := tcpr_.Value("Type");
width_value := tcpr_.Value("Width");
case width_type of
"auto", "dxa": return width_value / 20;
"pct": return width_value / 50;
end;
End;

57
docx/TSDocxCells.tsf Normal file
View File

@ -0,0 +1,57 @@
Type TSDocxCells = Class
public
Function Create(application, table);
private
application_;
table_; // TOfficeObj("TTable")
public
Function Add(BeforeCell);
Function AutoFit();
Function Delete(ShiftCells);
Function DistributeHeight();
Function DistributeWidth();
Function Item(Index);
Function Merge();
Function SetHeight(RowHeight, HeightRule);
Function SetWidth(ColumnWidth, RulerStyle);
Function Split(NumRows, NumColumns, MergeBeforeSplit);
property Application read ReadApplication;
property Borders read ReadBorders;
property Count read ReadCount;
property Creator read ReadCreator;
property Height read ReadHeight write WriteHeight;
property HeightRule read ReadHeightRule write WriteHeightRule;
property NestingLevel read ReadNestingLevel;
property Parent read ReadParent;
property PreferredWidth read ReadPreferredWidth write WritePreferredWidth;
property PreferredWidthType read ReadPreferredWidthType write WritePreferredWidthType;
property Shading read ReadShading;
property VerticalAlignment read ReadVerticalAlignment write WriteVerticalAlignment;
property Width read ReadWidth write WriteWidth;
Function WriteWidth();
Function ReadWidth();
Function WriteVerticalAlignment();
Function ReadVerticalAlignment();
Function ReadShading();
Function WritePreferredWidthType();
Function ReadPreferredWidthType();
Function WritePreferredWidth();
Function ReadPreferredWidth();
Function ReadParent();
Function ReadNestingLevel();
Function WriteHeightRule();
Function ReadHeightRule();
Function WriteHeight();
Function ReadHeight();
Function ReadCreator();
Function ReadCount();
Function ReadBorders();
Function ReadApplication();
End;
// ============== 实现 ================= //

245
docx/TSDocxColumn.tsf Normal file
View File

@ -0,0 +1,245 @@
Type TSDocxColumn = Class
public
Function Create(application, table, column);
private
Function SetColumnWidth(column, wvalue, type);
Function SerializeTblGrid();
private
application_;
table_;
column_;
min_dxa_width_; // 最小宽度 321
public
Function AutoFit();
Function Delete();
Function Select();
Function SetWidth(ColumnWidth, RulerStyle);
Function Sort(ExcludeHeader, SortFieldType, SortOrder, CaseSensitive, BidiSort, IgnoreThe, IgnoreKashida, IgnoreDiacritics, IgnoreHe, LanguageID);
property Application read ReadApplication;
property Borders read ReadBorders;
property Cells read ReadCells;
property Creator read ReadCreator;
property Index read ReadIndex;
property IsFirst read ReadIsFirst;
property IsLast read ReadIsLast;
property NestingLevel read ReadNestingLevel;
property Next read ReadNext;
property Parent read ReadParent;
property PreferredWidth read ReadPreferredWidth write WritePreferredWidth;
property PreferredWidthType read ReadPreferredWidthType write WritePreferredWidthType;
property Previous read ReadPrevious;
property Shading read ReadShading;
property Width read ReadWidth write WriteWidth;
Function WriteWidth(value);
Function ReadWidth();
Function ReadShading();
Function ReadPrevious();
Function WritePreferredWidthType(value);
Function ReadPreferredWidthType();
Function WritePreferredWidth(value);
Function ReadPreferredWidth();
Function ReadParent();
Function ReadNext();
Function ReadNestingLevel();
Function ReadIsLast();
Function ReadIsFirst();
Function ReadIndex();
Function ReadCreator();
Function ReadCells();
Function ReadBorders();
Function ReadApplication();
End;
// ============== 实现 ================= //
Function TSDocxColumn.Create(application, table, column);
Begin
application_ := application;
table_ := table;
column_ := column;
min_dxa_width_ := 321;
End;
Function TSDocxColumn.SetColumnWidth(column, wvalue, type);
Begin
if ifnil(wvalue) and ifnil(type) then return;
tcells := table_.GetCells();
for r:=0 to table_.Rows()-1 do
begin
cell := tcells[r, column-1];
if ifnil(cell) then continue;
tcpr := class(TSXml).GetNode(cell[0], "w:tcPr", "first");
obj := TOfficeObj("TwTcPr");
obj.InitRootNode(tcpr);
obj.Width := wvalue;
obj.Type := type;
obj.Update();
end
End;
Function TSDocxColumn.SerializeTblGrid();
Begin
grid_col_arr := array();
total_width := 0;
grid_col := class(TSXml).GetNode(table_.Root(), "w:tblGrid/w:gridCol");
while ifObj(grid_col) do
begin
ww := strtoint(grid_col.GetAttribute("w:w"));
total_width += ww;
grid_col_arr[length(grid_col_arr)] := array(grid_col, ww);
grid_col := grid_col.NextElement();
end
return array(total_width, grid_col_arr);
End;
// function
Function TSDocxColumn.SetWidth(ColumnWidth, RulerStyle);
Begin
if ifnil(RulerStyle) then RulerStyle := class(TSDocxEnumerations).wdAdjustNone();
width_value := ColumnWidth * 20;
[total_width, grid_col_arr] := SerializeTblGrid();
// 设置w:tblPr的总宽度
table_.TblPr.Width := total_width;
table_.TblPr.WidthType := "dxa";
table_.TblPr.Update();
case RulerStyle of
class(TSDocxEnumerations).wdAdjustFirstColumn():
begin
if column_ < length(grid_col_arr)-1 then
begin
new_width := grid_col_arr[column_][1] + grid_col_arr[column_-1][1] - width_value;
if new_width < min_dxa_width_ then new_width := min_dxa_width_;
grid_col_arr[column_][0].SetAttribute("w:w", new_width);
SetColumnWidth(column_ + 1, new_w, "dxa");
end
end
class(TSDocxEnumerations).wdAdjustNone():
begin
end
class(TSDocxEnumerations).wdAdjustProportional():
begin
// TODO : 需要搞懂算法
end
class(TSDocxEnumerations).wdAdjustSameWidth():
begin
after_width := grid_col_arr[column_-1][1] - width_value;
for i:=column_ to length(grid_col_arr)-1 do
after_width += grid_col_arr[i][1];
if length(grid_col_arr) > column_ then // 不是最后一列
begin
num := length(grid_col_arr) - column_;
new_width := integer(after_width / num);
for c:=column_+1 to length(grid_col_arr) do
begin
grid_col_arr[c-1][0].SetAttribute("w:w", new_width);
SetColumnWidth(c, new_width, "dxa");
end
end
end
end;
grid_col_arr[column_-1][0].SetAttribute("w:w", width_value);
SetColumnWidth(column_, width_value, "dxa");
End;
//property
Function TSDocxColumn.WriteWidth(value);
Begin
End;
Function TSDocxColumn.ReadWidth();
Begin
End;
Function TSDocxColumn.WritePreferredWidthType(value);
Begin
case value of
class(TSDocxEnumerations).wdPreferredWidthAuto():
begin
table_.TblPr.Width := 0;
table_.TblPr.WidthType := "auto";
table_.TblPr.Update();
for c:=1 to table_.Cols() do
SetColumnWidth(c, 0, "auto");
end
class(TSDocxEnumerations).wdPreferredWidthPercent():
begin
table_.TblPr.Width := 5000;
table_.TblPr.WidthType := "pct";
table_.TblPr.Update();
width_value := integer(5000 / table_.Cols());
for c:=1 to table_.Cols() do
SetColumnWidth(c, width_value, "pct");
end
class(TSDocxEnumerations).wdPreferredWidthPoints():
begin
for c:=1 to table_.Cols() do
SetColumnWidth(c, nil, "dxa");
end
end;
End;
Function TSDocxColumn.ReadPreferredWidthType();
Begin
tcells := table_.GetCells();
cell := tcells[1, column_ - 1];
if ifnil(cell) then return nil;
tcpr := class(TSXml).GetNode(cell[0], "w:tcPr", "first");
obj := TOfficeObj("TwTcPr");
obj.InitRootNode(tcpr);
width_type := obj.Value("Type");
tcpr.print;
case width_type of
"auto": return class(TSDocxEnumerations).wdPreferredWidthAuto();
"dxa": return class(TSDocxEnumerations).wdPreferredWidthPoints();
"pct": return class(TSDocxEnumerations).wdPreferredWidthPercent();
end;
End;
Function TSDocxColumn.WritePreferredWidth(value);
Begin
width_type := self.PreferredWidthType;
width_value := 0;
case width_type of
class(TSDocxEnumerations).wdPreferredWidthAuto(),
class(TSDocxEnumerations).wdPreferredWidthPoints():
begin
width_type := "dxa";
width_value := 20 * value;
if width_type > min_dxa_width_ then width_type := min_dxa_width_;
SetColumnWidth(column_, width_value, width_type);
end
class(TSDocxEnumerations).wdPreferredWidthPercent():
begin
width_type := "pct";
if value < 0 or value > 100 then return;
width_value := 50 * value;
SetColumnWidth(column_, width_value, width_type);
end
end;
End;
Function TSDocxColumn.ReadPreferredWidth();
Begin
tcells := table_.GetCells();
cell := tcells[1, column_ - 1];
if ifnil(cell) then return nil;
tcpr := class(TSXml).GetNode(cell[0], "w:tcPr", "first");
obj := TOfficeObj("TwTcPr");
obj.InitRootNode(tcpr);
width_type := obj.Value("Type");
width_value := obj.Value("Width");
case width_type of
"auto", "dxa": return width_value / 20;
"pct": return width_value / 50;
end;
End;

86
docx/TSDocxColumns.tsf Normal file
View File

@ -0,0 +1,86 @@
Type TSDocxColumns = Class
public
Function Create(application, table);
Function Operator[](index);
private
application_;
table_;
public
Function Add(BeforeColumn);
Function AutoFit();
Function Delete();
Function DistributeWidth();
Function Item(Index);
Function Select();
Function SetWidth(ColumnWidth, RulerStyle);
property Application read ReadApplication;
property Borders read ReadBorders;
property Count read ReadCount;
property Creator read ReadCreator;
property First read ReadFirst;
property Last read ReadLast;
property NestingLevel read ReadNestingLevel;
property Parent read ReadParent;
property PreferredWidth read ReadPreferredWidth write WritePreferredWidth;
property PreferredWidthType read ReadPreferredWidthType write WritePreferredWidthType;
property Shading read ReadShading;
property Width read ReadWidth write WriteWidth;
Function WriteWidth();
Function ReadWidth();
Function ReadShading();
Function WritePreferredWidthType(value);
Function ReadPreferredWidthType();
Function WritePreferredWidth(value);
Function ReadPreferredWidth();
Function ReadParent();
Function ReadNestingLevel();
Function ReadLast();
Function ReadFirst();
Function ReadCreator();
Function ReadCount();
Function ReadBorders();
Function ReadApplication();
End;
// ============== 实现 ================= //
Function TSDocxColumns.Create(application, table);
Begin
application_ := application;
table_ := table;
End;
Function Operator TSDocxColumns.[](index);
Begin
return new TSDocxColumn(application_, table_, index);
End;
// function
Function TSDocxColumns.Item(Index);
Begin
return self[Index];
End;
//property
Function TSDocxColumns.ReadCount();
Begin
return table_.Cols();
End;
Function TSDocxColumns.WritePreferredWidthType(value);
Begin
End;
Function TSDocxColumns.ReadPreferredWidthType();
Begin
End;
Function TSDocxColumns.WritePreferredWidth(value);
Begin
End;
Function TSDocxColumns.ReadPreferredWidth();
Begin
End;

657
docx/TSDocxDocument.tsf Normal file
View File

@ -0,0 +1,657 @@
Type TSDocxDocument = Class
public
Function Create(application, docx, name, fullname);
Function Init();
private
application_;
docx_;
collection_;
file_name_;
full_name_;
public
Function AcceptAllRevisions();
Function AcceptAllRevisionsShown();
Function Activate(); // Completed
Function AddToFavorite();
Function ApplyTSDocxDocumentTheme(FileName);
Function ApplyQuickStyleSet2(Style);
Function ApplyTheme(Name);
Function AutoFormat();
Function CanCheckIn();
Function CheckConsistency();
Function CheckGrammar();
Function CheckIn(SaveChanges, Comments, MakePublic);
Function CheckInWithVersion(SaveChanges, Comments, MakePublic, VersionType);
Function CheckSpelling(CustomDictionary, IgnoreUppercase, AlwaysSuggest, CustomDictionary2, CustomDictionary3, CustomDictionary4, CustomDictionary5, CustomDictionary6, CustomDictionary7, CustomDictionary8, CustomDictionary9, CustomDictionary10);
Function Close(SaveChanges, OriginalFormat, RouteTSDocxDocument); // Completed
Function ClosePrintPreview();
Function Compare(Name, AuthorName, CompareTarget, DetectFormatChanges, IgnoreAllComparisonWarnings, AddToRecentFiles, RemovePersonalInformation, RemoveDateAndTime);
Function ComputeStatistics(Statistic, IncludeFootnotesAndEndnotes);
Function Convert();
Function ConvertAutoHyphens();
Function ConvertNumbersToText();
Function ConvertVietDoc(CodePageOrigin);
Function CopyStylesFromTemplate(Template);
Function CountNumberedItems(NumberType, Level);
Function CreateLetterContent(DateFormat, IncludeHeaderFooter, PageDesign, LetterStyle, Letterhead, LetterheadLocation, LetterheadSize, RecipientName, RecipientAddress, Salutation, SalutationType, RecipientReference, MailingInstructions, AttentionLine, Subject, CCList, ReturnAddress, SenderName, Closing, SenderCompany, SenderJobTitle, SenderInitials, EnclosureNumber, InfoBlock, RecipientCode, RecipientGender, ReturnAddressShortForm, SenderCity, SenderCode, SenderGender, SenderReference);
Function DataForm();
Function DeleteAllComments(); // TODO
Function DeleteAllCommentsShown(); // TODO
Function DeleteAllEditableRanges(EditorID);
Function DeleteAllInkAnnotations();
Function DetectLanguage();
Function DowngradeTSDocxDocument();
Function EndReview();
Function ExportAsFixedFormat(OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, Range, From_, To_, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, FixedFormatExtClassPtr);
Function ExportAsFixedFormat2(OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, Range, From_, To_, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, OptimizeForImageQuality, FixedFormatExtClassPtr);
Function FitToPages();
Function FollowHyperlink (Address, SubAddress, NewWindow, AddHistory, ExtraInfo, Method, HeaderInfo);
Function FreezeLayout();
Function GetCrossReferenceItems(ReferenceType);
Function GetLetterContent();
Function GetWorkflowTasks();
Function GetWorkflowTemplates();
Function GoTo(What, Which, Count, Name);
Function LockServerFile();
Function MakeCompatibilityDefault();
Function ManualHyphenation();
Function Merge(Name, MergeTarget, DetectFormatChanges, UseFormattingFrom, AddToRecentFiles);
Function Post();
Function PresentIt();
Function PrintOut(Background, Append, Range, OutputFileName, From_, To_, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight);
Function PrintPreview();
Function Protect(Type, NoReset, Password, UseIRM, EnforceStyleLock);
Function Range(Start, End_); // TODO
Function Redo(Times);
Function RejectAllRevisions();
Function RejectAllRevisionsShown();
Function Reload();
Function ReloadAs(Encoding);
Function RemoveTSDocxDocumentInformation(RemoveDocInfoType);
Function RemoveLockedStyles();
Function RemoveNumbers(NumberType);
Function RemoveTheme();
Function Repaginate();
Function ReplyWithChanges(ShowMessage);
Function ResetFormFields();
Function ReturnToLastReadPosition();
Function RunAutoMacro(Which);
Function RunLetterWizard(LetterContent, WizardMode);
Function Save(); // Completed
Function SaveAs2(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword,
ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData,
SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding,
AddBiDiMarks, CompatibilityMode); // Completed
Function SaveAsQuickStyleSet(FileName);
Function Select();
Function SelectAllEditableRanges(EditorID);
Function SelectContentControlsByTag(Tag);
Function SelectContentControlsByTitle(Title);
Function SelectLinkedControls(Node);
Function SelectNodes(XPath, PrefixMapping, FastSearchSkippingTextNodes);
Function SelectSingleNode(XPath, PrefixMapping, FastSearchSkippingTextNodes);
Function SelectUnlinkedControls(Stream);
Function SendFax(Address, Subject);
Function SendFaxOverInternet(Recipients, Subject, ShowMessage);
Function SendForReview(Recipients, Subject, ShowMessage, IncludeAttachment);
Function SendMail();
Function SetCompatibilityMode(Mode);
Function SetDefaultTableStyle(Style, SetInTemplate);
Function SetLetterContent(LetterContent);
Function SetPasswordEncryptionOptions(PasswordEncryptionProvider, PasswordEncryptionAlgorithm, PasswordEncryptionKeyLength, PasswordEncryptionFileProperties);
Function ToggleFormsDesign();
Function TransformTSDocxDocument(Path, DataOnly);
Function Undo(Times);
Function UndoClear();
Function Unprotect(Password);
Function UpdateStyles();
Function ViewCode();
Function ViewPropertyBrowser();
Function WebPagePreview();
property ActiveTheme read ReadActiveTheme;
property ActiveThemeDisplayName read ReadActiveThemeDisplayName;
property ActiveWindow read ReadActiveWindow; // TODO
property ActiveWritingStyle read ReadActiveWritingStyle write WriteActiveWritingStyle;
property Application read ReadApplication;
property AttachedTemplate read ReadAttachedTemplate write WriteAttachedTemplate;
property AutoFormatOverride read ReadAutoFormatOverride write WriteAutoFormatOverride;
property AutoHyphenation read ReadAutoHyphenation write WriteAutoHyphenation;
property AutoSaveOn read ReadAutoSaveOn write WriteAutoSaveOn;
property Background read ReadBackground;
property Bibliography read ReadBibliography;
property Bookmarks read ReadBookmarks;
property Broadcast read ReadBroadcast;
property BuiltInTSDocxDocumentProperties read ReadBuiltInTSDocxDocumentProperties;
property Characters read ReadCharacters;
property ChartDataPointTrack read ReadChartDataPointTrack write WriteChartDataPointTrack;
property ClickAndTypeParagraphStyle read ReadClickAndTypeParagraphStyle write WriteClickAndTypeParagraphStyle;
property CoAuthoring read ReadCoAuthoring;
property CodeName read ReadCodeName;
property CommandBars read ReadCommandBars;
property Comments read ReadComments;
property Compatibility read ReadCompatibility write WriteCompatibility;
property CompatibilityMode read ReadCompatibilityMode write WriteCompatibilityMode;
property ConsecutiveHyphensLimit read ReadConsecutiveHyphensLimit write WriteConsecutiveHyphensLimit;
property Container read ReadContainer;
property Content read ReadContent;
property ContentControls read ReadContentControls;
property ContentTypeProperties read ReadContentTypeProperties;
property Creator read ReadCreator;
property CurrentRsid read ReadCurrentRsid;
property CustomTSDocxDocumentProperties read ReadCustomTSDocxDocumentProperties;
property CustomXMLParts read ReadCustomXMLParts;
property DefaultTableStyle read ReadDefaultTableStyle;
property DefaultTabStop read ReadDefaultTabStop write WriteDefaultTabStop;
property DefaultTargetFrame read ReadDefaultTargetFrame write WriteDefaultTargetFrame;
property DisableFeatures read ReadDisableFeatures write WriteDisableFeatures;
property DisableFeaturesIntroducedAfter read ReadDisableFeaturesIntroducedAfter write WriteDisableFeaturesIntroducedAfter;
property TSDocxDocumentInspectors read ReadTSDocxDocumentInspectors;
property TSDocxDocumentLibraryVersions read ReadTSDocxDocumentLibraryVersions;
property TSDocxDocumentTheme read ReadTSDocxDocumentTheme;
property DoNotEmbedSystemFonts read ReadDoNotEmbedSystemFonts write WriteDoNotEmbedSystemFonts;
property Email read ReadEmail;
property EmbedLinguisticData read ReadEmbedLinguisticData write WriteEmbedLinguisticData;
property EmbedTrueTypeFonts read ReadEmbedTrueTypeFonts write WriteEmbedTrueTypeFonts;
property EncryptionProvider read ReadEncryptionProvider write WriteEncryptionProvider;
property Endnotes read ReadEndnotes;
property EnforceStyle read ReadEnforceStyle write WriteEnforceStyle;
property Envelope read ReadEnvelope;
property FarEastLineBreakLanguage read ReadFarEastLineBreakLanguage write WriteFarEastLineBreakLanguage;
property FarEastLineBreakLevel read ReadFarEastLineBreakLevel write WriteFarEastLineBreakLevel;
property Fields read ReadFields;
property Final read ReadFinal write WriteFinal;
property Footnotes read ReadFootnotes;
property FormattingShowClear read ReadFormattingShowClear write WriteFormattingShowClear;
property FormattingShowFilter read ReadFormattingShowFilter write WriteFormattingShowFilter;
property FormattingShowFont read ReadFormattingShowFont write WriteFormattingShowFont;
property FormattingShowNextLevel read ReadFormattingShowNextLevel write WriteFormattingShowNextLevel;
property FormattingShowNumbering read ReadFormattingShowNumbering write WriteFormattingShowNumbering;
property FormattingShowParagraph read ReadFormattingShowParagraph write WriteFormattingShowParagraph;
property FormattingShowUserStyleName read ReadFormattingShowUserStyleName write WriteFormattingShowUserStyleName;
property FormFields read ReadFormFields;
property FormsDesign read ReadFormsDesign;
property Frames read ReadFrames;
property Frameset read ReadFrameset;
property FullName read ReadFullName;
property GrammarChecked read ReadGrammarChecked;
property GrammaticalErrors read ReadGrammaticalErrors;
property GridDistanceHorizontal read ReadGridDistanceHorizontal write WriteGridDistanceHorizontal;
property GridDistanceVertical read ReadGridDistanceVertical write WriteGridDistanceVertical;
property GridOriginFromMargin read ReadGridOriginFromMargin write WriteGridOriginFromMargin;
property GridOriginHorizontal read ReadGridOriginHorizontal write WriteGridOriginHorizontal;
property GridSpaceBetweenHorizontalLinesroperty read ReadGridSpaceBetweenHorizontalLinesroperty write WriteGridSpaceBetweenHorizontalLinesroperty;
property GridSpaceBetweenVerticalLines read ReadGridSpaceBetweenVerticalLines write WriteGridSpaceBetweenVerticalLines;
property HasPassword read ReadHasPassword;
property HasVBProject read ReadHasVBProject;
property HTMLDivisions read ReadHTMLDivisions;
property Hyperlinks read ReadHyperlinks;
property HyphenateCaps read ReadHyphenateCaps write WriteHyphenateCaps;
property HyphenationZone read ReadHyphenationZone write WriteHyphenationZone;
property Indexes read ReadIndexes;
property InlineShapes read ReadInlineShapes;
property IsInAutosave read ReadIsInAutosave;
property IsMasterTSDocxDocument read ReadIsMasterTSDocxDocument;
property IsSubdocument read ReadIsSubdocument;
property JustificationMode read ReadJustificationMode write WriteJustificationMode;
property KerningByAlgorithm read ReadKerningByAlgorithm write WriteKerningByAlgorithm;
property Kind read ReadKind write WriteKind;
property LanguageDetected read ReadLanguageDetected write WriteLanguageDetected;
property ListParagraphs read ReadListParagraphs;
property Lists read ReadLists;
property ListTemplates read ReadListTemplates;
property LockQuickStyleSet read ReadLockQuickStyleSet write WriteLockQuickStyleSet;
property LockTheme read ReadLockTheme write WriteLockTheme;
property MailEnvelope read ReadMailEnvelope;
property MailMerge read ReadMailMerge;
property Name read ReadName;
property NoLineBreakAfter read ReadNoLineBreakAfter write WriteNoLineBreakAfter;
property NoLineBreakBefore read ReadNoLineBreakBefore write WriteNoLineBreakBefore;
property OMathBreakBin read ReadOMathBreakBin write WriteOMathBreakBin;
property OMathBreakSub read ReadOMathBreakSub write WriteOMathBreakSub;
property OMathFontName read ReadOMathFontName write WriteOMathFontName;
property OMathIntSubSupLim read ReadOMathIntSubSupLim write WriteOMathIntSubSupLim;
property OMathJc read ReadOMathJc write WriteOMathJc;
property OMathLeftMargin read ReadOMathLeftMargin write WriteOMathLeftMargin;
property OMathNarySupSubLim read ReadOMathNarySupSubLim write WriteOMathNarySupSubLim;
property OMathNarySupSubLim read ReadOMathNarySupSubLim write WriteOMathNarySupSubLim;
property OMathRightMargin read ReadOMathRightMargin write WriteOMathRightMargin;
property OMaths read ReadOMaths;
property OMathSmallFrac read ReadOMathSmallFrac write WriteOMathSmallFrac;
property OMathWrap read ReadOMathWrap write WriteOMathWrap;
property OpenEncoding read ReadOpenEncoding;
property OptimizeForWord97 read ReadOptimizeForWord97 write WriteOptimizeForWord97;
property OriginalTSDocxDocumentTitle read ReadOriginalTSDocxDocumentTitle;
property PageSetup read ReadPageSetup;
property Paragraphs read ReadParagraphs;
property Parent read ReadParent;
property Password write WritePassword;
property PasswordEncryptionAlgorithm read ReadPasswordEncryptionAlgorithm;
property PasswordEncryptionFileProperties read ReadPasswordEncryptionFileProperties;
property PasswordEncryptionKeyLength read ReadPasswordEncryptionKeyLength;
property PasswordEncryptionProvider read ReadPasswordEncryptionProvider;
property Path read ReadPath;
property Permission read ReadPermission;
property PrintFormsData read ReadPrintFormsData write WritePrintFormsData;
property PrintPostScriptOverText read ReadPrintPostScriptOverText write WritePrintPostScriptOverText;
property PrintRevisions read ReadPrintRevisions write WritePrintRevisions;
property ProtectionType read ReadProtectionType;
property ReadabilityStatistics read ReadReadabilityStatistics;
property ReadingLayoutSizeX read ReadReadingLayoutSizeX write WriteReadingLayoutSizeX;
property ReadingLayoutSizeY read ReadReadingLayoutSizeY write WriteReadingLayoutSizeY;
property ReadingModeLayoutFrozen read ReadReadingModeLayoutFrozen write WriteReadingModeLayoutFrozen;
property ReadOnly read ReadReadOnly;
property ReadOnlyRecommended read ReadReadOnlyRecommended write WriteReadOnlyRecommended;
property RemoveDateAndTime read ReadRemoveDateAndTime write WriteRemoveDateAndTime;
property RemovePersonalInformation read ReadRemovePersonalInformation write WriteRemovePersonalInformation;
property Research read ReadResearch;
property RevisedTSDocxDocumentTitle read ReadRevisedTSDocxDocumentTitle;
property Revisions read ReadRevisions;
property Saved read ReadSaved write WriteSaved;
property SaveEncoding read ReadSaveEncoding write WriteSaveEncoding;
property SaveFormat read ReadSaveFormat;
property SaveFormsData read ReadSaveFormsData write WriteSaveFormsData;
property SaveSubsetFonts read ReadSaveSubsetFonts write WriteSaveSubsetFonts;
property Scripts read ReadScripts;
property Sections read ReadSections;
property SensitivityLabel read ReadSensitivityLabel;
property Sentences read ReadSentences;
property ServerPolicy read ReadServerPolicy;
property Shapes read ReadShapes;
property ShowGrammaticalErrors read ReadShowGrammaticalErrors write WriteShowGrammaticalErrors;
property ShowSpellingErrors read ReadShowSpellingErrors write WriteShowSpellingErrors;
property Signatures read ReadSignatures;
property SmartTSDocxDocument read ReadSmartTSDocxDocument;
property SnapToGrid read ReadSnapToGrid write WriteSnapToGrid;
property SnapToShapes read ReadSnapToShapes write WriteSnapToShapes;
property SpellingChecked read ReadSpellingChecked write WriteSpellingChecked;
property SpellingErrors read ReadSpellingErrors;
property StoryRanges read ReadStoryRanges;
property Styles read ReadStyles;
property StyleSheets read ReadStyleSheets;
property StyleSortMethod read ReadStyleSortMethod write WriteStyleSortMethod;
property Subdocuments read ReadSubdocuments;
property Tables read ReadTables;
property TablesOfAuthorities read ReadTablesOfAuthorities write WriteTablesOfAuthorities;
property TablesOfAuthoritiesCategories read ReadTablesOfAuthoritiesCategories write WriteTablesOfAuthoritiesCategories;
property TablesOfContents read ReadTablesOfContents write WriteTablesOfContents;
property TablesOfFigures read ReadTablesOfFigures write WriteTablesOfFigures;
property TextEncoding read ReadTextEncoding write WriteTextEncoding;
property TextLineEnding read ReadTextLineEnding write WriteTextLineEnding;
property TrackFormatting read ReadTrackFormatting write WriteTrackFormatting;
property TrackMoves read ReadTrackMoves write WriteTrackMoves;
property TrackRevisions read ReadTrackRevisions write WriteTrackRevisions;
property Type read ReadType;
property UpdateStylesOnOpen read ReadUpdateStylesOnOpen write WriteUpdateStylesOnOpen;
property UseMathDefaults read ReadUseMathDefaults write WriteUseMathDefaults;
property UserControl read ReadUserControl write WriteUserControl;
property Variables read ReadVariables;
property VBASigned read ReadVBASigned;
property VBProject read ReadVBProject;
property WebOptions read ReadWebOptions;
property Windows read ReadWindows;
property WordOpenXML read ReadWordOpenXML;
property Words read ReadWords;
property WritePassword write WriteWritePassword;
property WriteReserved read ReadWriteReserved;
property XMLSaveThroughXSLT read ReadXMLSaveThroughXSLT write WriteXMLSaveThroughXSLT;
property XMLSchemaReferences read ReadXMLSchemaReferences;
property XMLShowAdvancedErrors read ReadXMLShowAdvancedErrors write WriteXMLShowAdvancedErrors;
property XMLUseXSLTWhenSaving read ReadXMLUseXSLTWhenSaving write WriteXMLUseXSLTWhenSaving;
Function WriteXMLUseXSLTWhenSaving();
Function ReadXMLUseXSLTWhenSaving();
Function WriteXMLShowAdvancedErrors();
Function ReadXMLShowAdvancedErrors();
Function ReadXMLSchemaReferences();
Function WriteXMLSaveThroughXSLT();
Function ReadXMLSaveThroughXSLT();
Function ReadWriteReserved();
Function WriteWritePassword();
Function ReadWords();
Function ReadWordOpenXML();
Function ReadWindows();
Function ReadWebOptions();
Function ReadVBProject();
Function ReadVBASigned();
Function ReadVariables();
Function WriteUserControl();
Function ReadUserControl();
Function WriteUseMathDefaults();
Function ReadUseMathDefaults();
Function WriteUpdateStylesOnOpen();
Function ReadUpdateStylesOnOpen();
Function ReadType();
Function WriteTrackRevisions();
Function ReadTrackRevisions();
Function WriteTrackMoves();
Function ReadTrackMoves();
Function WriteTrackFormatting();
Function ReadTrackFormatting();
Function WriteTextLineEnding();
Function ReadTextLineEnding();
Function WriteTextEncoding();
Function ReadTextEncoding();
Function WriteTablesOfFigures();
Function ReadTablesOfFigures();
Function WriteTablesOfContents();
Function ReadTablesOfContents();
Function WriteTablesOfAuthoritiesCategories();
Function ReadTablesOfAuthoritiesCategories();
Function WriteTablesOfAuthorities();
Function ReadTablesOfAuthorities();
Function ReadTables(index);
Function ReadSubdocuments();
Function WriteStyleSortMethod();
Function ReadStyleSortMethod();
Function ReadStyleSheets();
Function ReadStyles();
Function ReadStoryRanges();
Function ReadSpellingErrors();
Function WriteSpellingChecked();
Function ReadSpellingChecked();
Function WriteSnapToShapes();
Function ReadSnapToShapes();
Function WriteSnapToGrid();
Function ReadSnapToGrid();
Function ReadSmartTSDocxDocument();
Function ReadSignatures();
Function WriteShowSpellingErrors();
Function ReadShowSpellingErrors();
Function WriteShowGrammaticalErrors();
Function ReadShowGrammaticalErrors();
Function ReadShapes();
Function ReadServerPolicy();
Function ReadSentences();
Function ReadSensitivityLabel();
Function ReadSections();
Function ReadScripts();
Function WriteSaveSubsetFonts();
Function ReadSaveSubsetFonts();
Function WriteSaveFormsData();
Function ReadSaveFormsData();
Function ReadSaveFormat();
Function WriteSaveEncoding();
Function ReadSaveEncoding();
Function WriteSaved();
Function ReadSaved();
Function ReadRevisions();
Function ReadRevisedTSDocxDocumentTitle();
Function ReadResearch();
Function WriteRemovePersonalInformation();
Function ReadRemovePersonalInformation();
Function WriteRemoveDateAndTime();
Function ReadRemoveDateAndTime();
Function WriteReadOnlyRecommended();
Function ReadReadOnlyRecommended();
Function ReadReadOnly();
Function WriteReadingModeLayoutFrozen();
Function ReadReadingModeLayoutFrozen();
Function WriteReadingLayoutSizeY();
Function ReadReadingLayoutSizeY();
Function WriteReadingLayoutSizeX();
Function ReadReadingLayoutSizeX();
Function ReadReadabilityStatistics();
Function ReadProtectionType();
Function WritePrintRevisions();
Function ReadPrintRevisions();
Function WritePrintPostScriptOverText();
Function ReadPrintPostScriptOverText();
Function WritePrintFormsData();
Function ReadPrintFormsData();
Function ReadPermission();
Function ReadPath();
Function ReadPasswordEncryptionProvider();
Function ReadPasswordEncryptionKeyLength();
Function ReadPasswordEncryptionFileProperties();
Function ReadPasswordEncryptionAlgorithm();
Function WritePassword(password);
Function ReadParent();
Function ReadParagraphs();
Function ReadPageSetup();
Function ReadOriginalTSDocxDocumentTitle();
Function WriteOptimizeForWord97();
Function ReadOptimizeForWord97();
Function ReadOpenEncoding();
Function WriteOMathWrap();
Function ReadOMathWrap();
Function WriteOMathSmallFrac();
Function ReadOMathSmallFrac();
Function ReadOMaths();
Function WriteOMathRightMargin();
Function ReadOMathRightMargin();
Function WriteOMathNarySupSubLim();
Function ReadOMathNarySupSubLim();
Function WriteOMathLeftMargin();
Function ReadOMathLeftMargin();
Function WriteOMathJc();
Function ReadOMathJc();
Function WriteOMathIntSubSupLim();
Function ReadOMathIntSubSupLim();
Function WriteOMathFontName();
Function ReadOMathFontName();
Function WriteOMathBreakSub();
Function ReadOMathBreakSub();
Function WriteOMathBreakBin();
Function ReadOMathBreakBin();
Function WriteNoLineBreakBefore();
Function ReadNoLineBreakBefore();
Function WriteNoLineBreakAfter();
Function ReadNoLineBreakAfter();
Function ReadName();
Function ReadMailEnvelope();
Function ReadMailMerge();
Function WriteLockTheme();
Function ReadLockTheme();
Function WriteLockQuickStyleSet();
Function ReadLockQuickStyleSet();
Function ReadListTemplates();
Function ReadLists();
Function ReadListParagraphs();
Function WriteLanguageDetected();
Function ReadLanguageDetected();
Function WriteKind();
Function ReadKind();
Function WriteKerningByAlgorithm();
Function ReadKerningByAlgorithm();
Function WriteJustificationMode();
Function ReadJustificationMode();
Function ReadIsSubdocument();
Function ReadIsMasterTSDocxDocument();
Function ReadIsInAutosave();
Function ReadInlineShapes();
Function ReadIndexes();
Function WriteHyphenationZone();
Function ReadHyphenationZone();
Function WriteHyphenateCaps();
Function ReadHyphenateCaps();
Function ReadHyperlinks();
Function ReadHTMLDivisions();
Function ReadHasVBProject();
Function ReadHasPassword();
Function WriteGridSpaceBetweenVerticalLines();
Function ReadGridSpaceBetweenVerticalLines();
Function WriteGridSpaceBetweenHorizontalLinesroperty();
Function ReadGridSpaceBetweenHorizontalLinesroperty();
Function WriteGridOriginVertical();
Function ReadGridOriginVertical();
Function WriteGridOriginHorizontal();
Function ReadGridOriginHorizontal();
Function WriteGridOriginFromMargin();
Function ReadGridOriginFromMargin();
Function WriteGridDistanceVertical();
Function ReadGridDistanceVertical();
Function WriteGridDistanceHorizontal();
Function ReadGridDistanceHorizontal();
Function ReadGrammaticalErrors();
Function ReadGrammarChecked();
Function ReadFullName();
Function ReadFrameset();
Function ReadFrames();
Function ReadFormsDesign();
Function ReadFormFields();
Function WriteFormattingShowUserStyleName();
Function ReadFormattingShowUserStyleName();
Function WriteFormattingShowParagraph();
Function ReadFormattingShowParagraph();
Function WriteFormattingShowNumbering();
Function ReadFormattingShowNumbering();
Function WriteFormattingShowNextLevel();
Function ReadFormattingShowNextLevel();
Function WriteFormattingShowFont();
Function ReadFormattingShowFont();
Function WriteFormattingShowFilter();
Function ReadFormattingShowFilter();
Function WriteFormattingShowClear();
Function ReadFormattingShowClear();
Function ReadFootnotes();
Function WriteFinal();
Function ReadFinal();
Function ReadFields();
Function WriteFarEastLineBreakLevel();
Function ReadFarEastLineBreakLevel();
Function WriteFarEastLineBreakLanguage();
Function ReadFarEastLineBreakLanguage();
Function ReadEnvelope();
Function WriteEnforceStyle();
Function ReadEnforceStyle();
Function ReadEndnotes();
Function WriteEncryptionProvider();
Function ReadEncryptionProvider();
Function WriteEmbedTrueTypeFonts();
Function ReadEmbedTrueTypeFonts();
Function WriteEmbedLinguisticData();
Function ReadEmbedLinguisticData();
Function ReadEmail();
Function WriteDoNotEmbedSystemFonts();
Function ReadDoNotEmbedSystemFonts();
Function ReadTSDocxDocumentTheme();
Function ReadTSDocxDocumentLibraryVersions();
Function ReadTSDocxDocumentInspectors();
Function WriteDisableFeaturesIntroducedAfter();
Function ReadDisableFeaturesIntroducedAfter();
Function WriteDisableFeatures();
Function ReadDisableFeatures();
Function WriteDefaultTargetFrame();
Function ReadDefaultTargetFrame();
Function WriteDefaultTabStop();
Function ReadDefaultTabStop();
Function ReadDefaultTableStyle();
Function ReadCustomXMLParts();
Function ReadCustomTSDocxDocumentProperties();
Function ReadCurrentRsid();
Function ReadCreator();
Function ReadContentTypeProperties();
Function ReadContentControls();
Function ReadContent();
Function ReadContainer();
Function WriteConsecutiveHyphensLimit();
Function ReadConsecutiveHyphensLimit();
Function WriteCompatibilityMode();
Function ReadCompatibilityMode();
Function WriteCompatibility();
Function ReadCompatibility();
Function ReadComments();
Function ReadCommandBars();
Function ReadCodeName();
Function ReadCoAuthoring();
Function WriteClickAndTypeParagraphStyle();
Function ReadClickAndTypeParagraphStyle();
Function WriteChartDataPointTrack();
Function ReadChartDataPointTrack();
Function ReadCharacters();
Function ReadBuiltInTSDocxDocumentProperties();
Function ReadBroadcast();
Function ReadBookmarks();
Function ReadBibliography();
Function ReadBackground();
Function WriteAutoSaveOn();
Function ReadAutoSaveOn();
Function WriteAutoHyphenation();
Function ReadAutoHyphenation();
Function WriteAutoFormatOverride();
Function ReadAutoFormatOverride();
Function WriteAttachedTemplate();
Function ReadAttachedTemplate();
Function ReadApplication();
Function WriteActiveWritingStyle();
Function ReadActiveWritingStyle();
Function ReadActiveWindow();
Function ReadActiveThemeDisplayName();
Function ReadActiveTheme();
private
tables_;
End;
// ============== 实现 ================= //
Function TSDocxDocument.Create(application, docx, name, fullname);
Begin
application_ := application;
docx_ := docx;
file_name_ := name;
full_name_ := fullname;
collection_ := class(Collection).GetInstance('document');
Init();
End;
Function TSDocxDocument.Init();
Begin
tables_ := new TSDocxTables(application_, docx_);
End;
// function
Function TSDocxDocument.Activate();
Begin
collection_.SetActivation(file_name_);
End;
Function TSDocxDocument.Close(SaveChanges, OriginalFormat, RouteTSDocxDocument)
Begin
[err, msg] := docx_.Save();
if not err then collection_.RemoveCollection(file_name_);
End;
Function TSDocxDocument.Save();
Begin
docx_.Save();
End;
Function TSDocxDocument.SaveAs2(FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword,
ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData,
SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding,
AddBiDiMarks, CompatibilityMode);
Begin
docx_.SetPassword(Password);
docx_.SaveAs("", FileName);
End;
// property
Function TSDocxDocument.ReadFullName();
Begin
return full_name_;
End;
Function TSDocxDocument.ReadName();
Begin
return file_name_;
End;
Function TSDocxDocument.WritePassword(passwd);
Begin
docx_.SetPassword(passwd);
End;
Function TSDocxDocument.ReadPath();
Begin
return ExtractFileDir(full_name_);
End;
Function TSDocxDocument.ReadTables(index);
Begin
if ifnil(index) then return tables_;
return tables_[index];
End;

95
docx/TSDocxDocuments.tsf Normal file
View File

@ -0,0 +1,95 @@
Type TSDocxDocuments = Class(TSVbaBase)
public
Function Create(app, par, cre);
Function Operator[](index);
Function GetActivation();
private
Function AddDocument(xlsx, name); // Completed
private
collection_;
public
Function Add(Template, NewTemplate, DocumentType, Visible); // Completed
Function AddBlogDocument(ProviderID, PostURL, BlogName, PostID);
Function CanCheckOut(FileName);
Function CheckOut(FileName);
Function Close(SaveChanges, OriginalFormat, RouteDocument);
Function Item(Index); // Completed
Function Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument,
PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format,
Encoding, Visible, OpenConflictDocument, OpenAndRepair, DocumentDirection, NoEncodingDialog); // Completed
Function OpenNoRepairDialog(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument,
WritePasswordTemplate, Format, Encoding, Visible, OpenAndRepair,
DocumentDirection, NoEncodingDialog, XMLTransform);
Function Save(NoPrompt, OriginalFormat); // Completed
property Count read ReadCount;
property Creator read ReadCreator;
Function ReadCount(); // Completed
Function ReadCreator();
End;
// ============== 实现 ================= //
Function TSDocxDocuments.Create(app, par, cre);
Begin
Class(TSVbaBase).Create(app, par, cre);
collection_ := class(Collection).GetInstance('document');
End;
Function TSDocxDocuments.AddDocument(docx, fullname);
Begin
name := ExtractFileName(fullname);
collection_.AddCollection(new TSDocxDocument(application_, docx, name, fullname), name);
End;
Function Operator TSDocxDocuments.[](index);
Begin
return collection_[index];
End;
Function TSDocxDocuments.GetActivation();
Begin
return collection_.GetActivation();
End;
// function
Function TSDocxDocuments.Add(Template, NewTemplate, DocumentType, Visible);
Begin
docx := new TSDocxFile();
docx.NewFile();
AddDocument(docx, collection_.CalNewName("文档"));
End;
Function TSDocxDocuments.Item(index);
Begin
return self[index];
End;
Function TSDocxDocuments.Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument,
PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format,
Encoding, Visible, OpenConflictDocument, OpenAndRepair, DocumentDirection, NoEncodingDialog);
Begin
docx := new TSDocxFile();
[err, msg] := docx.OpenFile("", FileName, PasswordDocument);
if err then return;
AddDocument(docx, docx.FileName());
End;
Function TSDocxDocuments.Save(NoPrompt, OriginalFormat);
Begin
num := self.Count;
for i:=1 to num do
self[i].Save();
End;
// property
Function TSDocxDocuments.ReadCount();
Begin
return collection_.GetCount();
End;

459
docx/TSDocxEnumerations.tsf Normal file
View File

@ -0,0 +1,459 @@
Type TSDocxEnumerations = Class
// WdSaveOptions enumeration
Class Function wdDoNotSaveChanges();
Begin
return 0;
End;
Class Function wdPromptToSaveChanges();
Begin
return -2;
End;
Class Function wdSaveChanges();
Begin
return -1;
End;
// WdAutoFitBehavior enumeration
Class Function wdAutoFitContent();
Begin
return 1;
End;
Class Function wdAutoFitFixed();
Begin
return 0;
End;
Class Function wdAutoFitWindow();
Begin
return 2;
End;
// WdDeleteCells enumeration
Class Function wdDeleteCellsEntireColumn();
Begin
return 3;
End;
Class Function wdDeleteCellsEntireRow();
Begin
return 2;
End;
Class Function wdDeleteCellsShiftLeft();
Begin
return 1;
End;
Class Function wdDeleteCellsShiftUp();
Begin
return 0;
End;
// WdCellVerticalAlignment
Class Function wdCellAlignVerticalBottom();
Begin
return 3;
End;
Class Function wdCellAlignVerticalCenter();
Begin
return 1;
End;
Class Function wdCellAlignVerticalTop();
Begin
return 0;
End;
// WdTextureIndex
Class Function wdTexture10Percent();
Begin
return 100;
End;
Class Function wdTexture12Pt5Percent();
Begin
return 125;
End;
Class Function wdTexture15Percent();
Begin
return 150;
End;
Class Function wdTexture17Pt5Percent();
Begin
return 175;
End;
Class Function wdTexture20Percent();
Begin
return 200;
End;
Class Function wdTexture22Pt5Percent();
Begin
return 225;
End;
Class Function wdTexture25Percent();
Begin
return 250;
End;
Class Function wdTexture27Pt5Percent();
Begin
return 275;
End;
Class Function wdTexture2Pt5Percent();
Begin
return 25;
End;
Class Function wdTexture30Percent();
Begin
return 300;
End;
Class Function wdTexture32Pt5Percent();
Begin
return 325;
End;
Class Function wdTexture35Percent();
Begin
return 350;
End;
Class Function wdTexture37Pt5Percent();
Begin
return 375;
End;
Class Function wdTexture40Percent();
Begin
return 400;
End;
Class Function wdTexture42Pt5Percent();
Begin
return 425;
End;
Class Function wdTexture45Percent();
Begin
return 450;
End;
Class Function wdTexture47Pt5Percent();
Begin
return 475;
End;
Class Function wdTexture50Percent();
Begin
return 500;
End;
Class Function wdTexture52Pt5Percent();
Begin
return 525;
End;
Class Function wdTexture55Percent();
Begin
return 550;
End;
Class Function wdTexture57Pt5Percent();
Begin
return 575;
End;
Class Function wdTexture5Percent();
Begin
return 50;
End;
Class Function wdTexture60Percent();
Begin
return 600;
End;
Class Function wdTexture62Pt5Percent();
Begin
return 625;
End;
Class Function wdTexture65Percent();
Begin
return 650;
End;
Class Function wdTexture67Pt5Percent();
Begin
return 675;
End;
Class Function wdTexture70Percent();
Begin
return 700;
End;
Class Function wdTexture72Pt5Percent();
Begin
return 725;
End;
Class Function wdTexture75Percent();
Begin
return 750;
End;
Class Function wdTexture77Pt5Percent();
Begin
return 775;
End;
Class Function wdTexture7Pt5Percent();
Begin
return 75;
End;
Class Function wdTexture80Percent();
Begin
return 800;
End;
Class Function wdTexture82Pt5Percent();
Begin
return 825;
End;
Class Function wdTexture85Percent();
Begin
return 850;
End;
Class Function wdTexture87Pt5Percent();
Begin
return 875;
End;
Class Function wdTexture90Percent();
Begin
return 900;
End;
Class Function wdTexture92Pt5Percent();
Begin
return 925;
End;
Class Function wdTexture95Percent();
Begin
return 950;
End;
Class Function wdTexture97Pt5Percent();
Begin
return 975;
End;
Class Function wdTextureCross();
Begin
return -11;
End;
Class Function wdTextureDarkCross();
Begin
return -5;
End;
Class Function wdTextureDarkDiagonalCross();
Begin
return -6;
End;
Class Function wdTextureDarkDiagonalDown();
Begin
return -3;
End;
Class Function wdTextureDarkDiagonalUp();
Begin
return -4;
End;
Class Function wdTextureDarkHorizontal();
Begin
return -1;
End;
Class Function wdTextureDarkVertical();
Begin
return -2;
End;
Class Function wdTextureDiagonalCross();
Begin
return -12;
End;
Class Function wdTextureDiagonalDown();
Begin
return -9;
End;
Class Function wdTextureDiagonalUp();
Begin
return -10;
End;
Class Function wdTextureHorizontal();
Begin
return -7;
End;
Class Function wdTextureNone();
Begin
return 0;
End;
Class Function wdTextureSolid();
Begin
return 1000;
End;
Class Function wdTextureVertical();
Begin
return -8;
End;
// WdRowHeightRule
Class Function wdRowHeightAtLeast();
Begin
return 1;
End;
Class Function wdRowHeightAuto();
Begin
return 0;
End;
Class Function wdRowHeightExactly();
Begin
return 2;
End;
// WdBorderType
Class Function wdBorderBottom();
Begin
return -3;
End;
Class Function wdBorderDiagonalDown();
Begin
return -7;
End;
Class Function wdBorderDiagonalUp();
Begin
return -8;
End;
Class Function wdBorderHorizontal();
Begin
return -5;
End;
Class Function wdBorderLeft();
Begin
return -2;
End;
Class Function wdBorderRight();
Begin
return -4;
End;
Class Function wdBorderTop();
Begin
return -1;
End;
Class Function wdBorderVertical();
Begin
return -6;
End;
// WdLineStyle
Class Function wdLineStyleDashDot();
Begin
return 5;
End;
Class Function wdLineStyleDashDotDot();
Begin
return 6;
End;
Class Function wdLineStyleDashDotStroked();
Begin
return 20;
End;
Class Function wdLineStyleDashLargeGap();
Begin
return 4;
End;
Class Function wdLineStyleDashSmallGap();
Begin
return 3;
End;
Class Function wdLineStyleDot();
Begin
return 2;
End;
Class Function wdLineStyleDouble();
Begin
return 7;
End;
Class Function wdLineStyleDoubleWavy();
Begin
return 19;
End;
Class Function wdLineStyleEmboss3D();
Begin
return 21;
End;
Class Function wdLineStyleEngrave3D();
Begin
return 22;
End;
Class Function wdLineStyleInset();
Begin
return 24;
End;
Class Function wdLineStyleNone();
Begin
return 0;
End;
Class Function wdLineStyleOutset();
Begin
return 23;
End;
Class Function wdLineStyleSingle();
Begin
return 1;
End;
Class Function wdLineStyleSingleWavy();
Begin
return 18;
End;
Class Function wdLineStyleThickThinLargeGap();
Begin
return 16;
End;
Class Function wdLineStyleThickThinMedGap();
Begin
return 13;
End;
Class Function wdLineStyleThickThinSmallGap();
Begin
return 10;
End;
Class Function wdLineStyleThinThickLargeGap();
Begin
return 15;
End;
Class Function wdLineStyleThinThickMedGap();
Begin
return 12;
End;
Class Function wdLineStyleThinThickSmallGap();
Begin
return 9;
End;
Class Function wdLineStyleThinThickThinLargeGap();
Begin
return 17;
End;
Class Function wdLineStyleThinThickThinMedGap();
Begin
return 14;
End;
Class Function wdLineStyleThinThickThinSmallGap();
Begin
return 11;
End;
Class Function wdLineStyleTriple();
Begin
return 8;
End;
// WdRulerStyle
Class Function wdAdjustFirstColumn();
Begin
return 2;
End;
Class Function wdAdjustNone();
Begin
return 0;
End;
Class Function wdAdjustProportional();
Begin
return 1;
End;
Class Function wdAdjustSameWidth();
Begin
return 3;
End;
// WdPreferredWidthType
Class Function wdPreferredWidthAuto();
Begin
return 1;
End;
Class Function wdPreferredWidthPercent();
Begin
return 2;
End;
Class Function wdPreferredWidthPoints();
Begin
return 3;
End;
End;

108
docx/TSDocxRow.tsf Normal file
View File

@ -0,0 +1,108 @@
Type TSDocxRow = Class
public
Function Create(application, table, row);
private
application_;
table_;
row_;
public
Function ConvertToText(Separator, NestedTables);
Function Delete();
Function Select();
Function SetHeight(RowHeight, HeightRule);
Function SetLeftIndent(LeftIndent, RulerStyle);
property Alignment read ReadAlignment write WriteAlignment;
property AllowBreakAcrossPages read ReadAllowBreakAcrossPages write WriteAllowBreakAcrossPages;
property Application read ReadApplication;
property Borders read ReadBorders;
property Cells read ReadCells;
property Creator read ReadCreator;
property HeadingFormat read ReadHeadingFormat write WriteHeadingFormat;
property Height read ReadHeight write WriteHeight;
property HeightRule read ReadHeightRule write WriteHeightRule;
property ID read ReadID write WriteID;
property Index read ReadIndex;
property IsFirst read ReadIsFirst;
property IsLast read ReadIsLast;
property LeftIndent read ReadLeftIndent write WriteLeftIndent;
property NestingLevel read ReadNestingLevel;
property Next read ReadNext;
property Parent read ReadParent;
property Previous read ReadPrevious;
property Range read ReadRange;
property Shading read ReadShading;
property SpaceBetweenColumns read ReadSpaceBetweenColumns write WriteSpaceBetweenColumns;
Function WriteSpaceBetweenColumns();
Function ReadSpaceBetweenColumns();
Function ReadShading();
Function ReadRange();
Function ReadPrevious();
Function ReadParent();
Function ReadNext();
Function ReadNestingLevel();
Function WriteLeftIndent();
Function ReadLeftIndent();
Function ReadIsLast();
Function ReadIsFirst();
Function ReadIndex();
Function WriteID();
Function ReadID();
Function WriteHeightRule();
Function ReadHeightRule();
Function WriteHeight();
Function ReadHeight();
Function WriteHeadingFormat();
Function ReadHeadingFormat();
Function ReadCreator();
Function ReadCells();
Function ReadBorders();
Function ReadApplication();
Function WriteAllowBreakAcrossPages();
Function ReadAllowBreakAcrossPages();
Function WriteAlignment();
Function ReadAlignment();
End;
// ============== 实现 ================= //
Function TSDocxRow.Create(application, table, row);
Begin
application_ := application;
table_ := table;
row_ := row;
End;
// function
Function TSDocxRow.Delete();
Begin
table_.DeleteCell(row_, nil);
End;
Function TSDocxRow.Select();
Begin
End;
Function TSDocxRow.SetHeight(RowHeight, HeightRule);
Begin
case HeightRule of
class(TSDocxEnumerations).wdRowHeightAtLeast:
begin
end
class(TSDocxEnumerations).wdRowHeightAuto:
begin
end
class(TSDocxEnumerations).wdRowHeightExactly:
begin
end
end;
End;
Function TSDocxRow.SetLeftIndent(LeftIndent, RulerStyle);
Begin
End;

160
docx/TSDocxRows.tsf Normal file
View File

@ -0,0 +1,160 @@
Type TSDocxRows = Class
public
Function Create(application, table);
Function Operator[](index);
private
application_;
table_;
public
Function Add(BeforeRow);
Function ConvertToText(Separator, NestedTables);
Function Delete();
Function DistributeHeight();
Function Item(Index);
Function Select();
Function SetHeight(RowHeight, HeightRule);
Function SetLeftIndent(LeftIndent, RulerStyle);
property Alignment read ReadAlignment write WriteAlignment;
property AllowBreakAcrossPages read ReadAllowBreakAcrossPages write WriteAllowBreakAcrossPages;
property AllowOverlap read ReadAllowOverlap write WriteAllowOverlap;
property Application read ReadApplication;
property Borders read ReadBorders;
property Count read ReadCount;
property Creator read ReadCreator;
property DistanceBottom read ReadDistanceBottom write WriteDistanceBottom;
property DistanceLeft read ReadDistanceLeft write WriteDistanceLeft;
property DistanceRight read ReadDistanceRight write WriteDistanceRight;
property DistanceTop read ReadDistanceTop write WriteDistanceTop;
property First read ReadFirst;
property HeadingFormat read ReadHeadingFormat write WriteHeadingFormat;
property Height read ReadHeight write WriteHeight;
property HeightRule read ReadHeightRule write WriteHeightRule;
property HorizontalPosition read ReadHorizontalPosition write WriteHorizontalPosition;
property Last read ReadLast;
property LeftIndent read ReadLeftIndent write WriteLeftIndent;
property NestingLevel read ReadNestingLevel;
property Parent read ReadParent;
property RelativeHorizontalPosition read ReadRelativeHorizontalPosition write WriteRelativeHorizontalPosition;
property RelativeVerticalPosition read ReadRelativeVerticalPosition write WriteRelativeVerticalPosition;
property Shading read ReadShading;
property SpaceBetweenColumns read ReadSpaceBetweenColumns;
property TableDirection read ReadTableDirection write WriteTableDirection;
property VerticalPosition read ReadVerticalPosition write WriteVerticalPosition;
property WrapAroundText read ReadWrapAroundText write WriteWrapAroundText;
Function WriteWrapAroundText(value);
Function ReadWrapAroundText();
Function WriteVerticalPosition();
Function ReadVerticalPosition();
Function WriteTableDirection();
Function ReadTableDirection();
Function ReadSpaceBetweenColumns();
Function ReadShading();
Function WriteRelativeVerticalPosition();
Function ReadRelativeVerticalPosition();
Function WriteRelativeHorizontalPosition();
Function ReadRelativeHorizontalPosition();
Function ReadParent();
Function ReadNestingLevel();
Function WriteLeftIndent();
Function ReadLeftIndent();
Function ReadLast();
Function WriteHorizontalPosition();
Function ReadHorizontalPosition();
Function WriteHeightRule();
Function ReadHeightRule();
Function WriteHeight();
Function ReadHeight();
Function WriteHeadingFormat();
Function ReadHeadingFormat();
Function ReadFirst();
Function WriteDistanceTop();
Function ReadDistanceTop();
Function WriteDistanceRight();
Function ReadDistanceRight();
Function WriteDistanceLeft();
Function ReadDistanceLeft();
Function WriteDistanceBottom();
Function ReadDistanceBottom();
Function ReadCreator();
Function ReadCount();
Function ReadBorders();
Function ReadApplication();
Function WriteAllowOverlap();
Function ReadAllowOverlap();
Function WriteAllowBreakAcrossPages();
Function ReadAllowBreakAcrossPages();
Function WriteAlignment();
Function ReadAlignment();
End;
// ============== 实现 ================= //
Function TSDocxRows.Create(application, table);
Begin
application_ := application;
table_ := table;
End;
Function Operator TSDocxRows.[](index);
Begin
return new TSDocxRow(application_, table_, Index);
End;
// function
Function TSDocxRows.Select();
Begin
End;
Function TSDocxRows.Item(Index);
Begin
return self[Index];
End;
Function TSDocxRows.SetHeight(RowHeight, HeightRule);
Begin
case HeightRule of
class(TSDocxEnumerations).wdRowHeightAtLeast:
begin
end
class(TSDocxEnumerations).wdRowHeightAuto:
begin
end
class(TSDocxEnumerations).wdRowHeightExactly:
begin
end
end;
End;
Function TSDocxRows.SetLeftIndent(LeftIndent, RulerStyle);
Begin
End;
// property
Function TSDocxRows.ReadWrapAroundText();
Begin
node := class(TSXml).GetNode(table_.Root(), "w:tblPr/w:tblpPr");
return ifObj(node) ? -1 : 0;
End;
Function TSDocxRows.WriteWrapAroundText(value);
Begin
if value then
begin
table_.tblPr.tblpPr.LeftFromText := 180;
table_.tblPr.tblpPr.RightFromText := 180;
table_.tblPr.tblpPr.VertAnchor := "text";
table_.tblPr.tblpPr.tblpY := 1;
table_.tblPr.Overlap := "never";
table_.Apply();
end
else begin
class(TSXml).RemoveNode(table_.Root(), "w:tblPr/w:tblpPr");
class(TSXml).RemoveNode(table_.Root(), "w:tblPr/w:tblOverlap");
end
End;

56
docx/TSDocxShading.tsf Normal file
View File

@ -0,0 +1,56 @@
Type TSDocxShading = Class
public
Function Create(application, pr);
private
application_;
pr_; // xxPr对象比如Cell: tr.tcPr或Paragraph: p.pPr
public
property Application read ReadApplication;
property BackgroundPatternColor read ReadBackgroundPatternColor write WriteBackgroundPatternColor;
property BackgroundPatternColorIndex read ReadBackgroundPatternColorIndex write WriteBackgroundPatternColorIndex;
property Creator read ReadCreator;
property ForegroundPatternColor read ReadForegroundPatternColor write WriteForegroundPatternColor;
property ForegroundPatternColorIndex read ReadForegroundPatternColorIndex write WriteForegroundPatternColorIndex;
property Parent read ReadParent;
property Texture read ReadTexture write WriteTexture;
Function WriteTexture(texture);
Function ReadTexture();
Function ReadParent();
Function WriteForegroundPatternColorIndex();
Function ReadForegroundPatternColorIndex();
Function WriteForegroundPatternColor();
Function ReadForegroundPatternColor();
Function ReadCreator();
Function WriteBackgroundPatternColorIndex();
Function ReadBackgroundPatternColorIndex();
Function WriteBackgroundPatternColor();
Function ReadBackgroundPatternColor();
Function ReadApplication();
End;
// ============== 实现 ================= //
Function TSDocxShading.Create(application, pr);
Begin
application_ := application;
pr_ := pr;
End;
// property
Function TSDocxShading.WriteTexture(texture);
Begin
case texture of
class(TSDocxEnumerations).wdTextureHorizontal():
begin
pr_.Shading.Val := "thinHorzStripe";
pr_.Update();
end
end;
End;
Function TSDocxShading.ReadTexture();
Begin
End;

197
docx/TSDocxTable.tsf Normal file
View File

@ -0,0 +1,197 @@
Type TSDocxTable = Class
public
Function Create(application, docx, table);
private
application_;
docx_;
table_; // TOfficeObj('TTable') 对象
public
Function ApplyStyleDirectFormatting(StyleName);
Function AutoFitBehavior(Behavior);
Function AutoFormat(Format, ApplyBorders, ApplyShading, ApplyFont, ApplyColor, ApplyHeadingRows, ApplyLastRow, ApplyFirstColumn, ApplyLastColumn, AutoFit);
Function Cell(Row, Column);
Function ConvertToText(Separator, NestedTables);
Function Delete();
Function Select();
Function Sort(ExcludeHeader, FieldNumber, SortFieldType, SortOrder, FieldNumber2, SortFieldType2, SortOrder2, FieldNumber3, SortFieldType3, SortOrder3, CaseSensitive, BidiSort, IgnoreThe, IgnoreKashida, IgnoreDiacritics, IgnoreHe, LanguageID);
Function SortAscending();
Function SortDescending();
Function Split(BeforeRow);
Function UpdateAutoFormat();
property AllowAutoFit read ReadAllowAutoFit write WriteAllowAutoFit;
property Application read ReadApplication;
property ApplyStyleColumnBands read ReadApplyStyleColumnBands write WriteApplyStyleColumnBands;
property ApplyStyleFirstColumn read ReadApplyStyleFirstColumn write WriteApplyStyleFirstColumn;
property ApplyStyleHeadingRows read ReadApplyStyleHeadingRows write WriteApplyStyleHeadingRows;
property ApplyStyleLastColumn read ReadApplyStyleLastColumn write WriteApplyStyleLastColumn;
property ApplyStyleLastRow read ReadApplyStyleLastRow write WriteApplyStyleLastRow;
property ApplyStyleRowBands read ReadApplyStyleRowBands write WriteApplyStyleRowBands;
property AutoFormatType read ReadAutoFormatType;
property Borders read ReadBorders;
property BottomPadding read ReadBottomPadding write WriteBottomPadding;
property Columns read ReadColumns;
property Creator read ReadCreator;
property Descr read ReadDescr write WriteDescr;
property ID read ReadID write WriteID;
property LeftPadding read ReadLeftPadding write WriteLeftPadding;
property NestingLevel read ReadNestingLevel;
property Parent read ReadParent;
property PreferredWidth read ReadPreferredWidth write WritePreferredWidth;
property PreferredWidthType read ReadPreferredWidthType write WritePreferredWidthType;
property Range read ReadRange;
property RightPadding read ReadRightPadding write WriteRightPadding;
property Rows read ReadRows;
property Shading read ReadShading;
property Spacing read ReadSpacing write WriteSpacing;
property Style read ReadStyle write WriteStyle;
property TableDirection read ReadTableDirection write WriteTableDirection;
property Tables read ReadTables;
property Title read ReadTitle write WriteTitle;
property TopPadding read ReadTopPadding write WriteTopPadding;
property Uniform read ReadUniform;
Function ReadUniform();
Function WriteTopPadding();
Function ReadTopPadding();
Function WriteTitle();
Function ReadTitle();
Function ReadTables();
Function WriteTableDirection();
Function ReadTableDirection();
Function WriteStyle();
Function ReadStyle();
Function WriteSpacing();
Function ReadSpacing();
Function ReadShading();
Function ReadRows(index);
Function WriteRightPadding();
Function ReadRightPadding();
Function ReadRange();
Function WritePreferredWidthType(value);
Function ReadPreferredWidthType();
Function WritePreferredWidth(value);
Function ReadPreferredWidth();
Function ReadParent();
Function ReadNestingLevel();
Function WriteLeftPadding();
Function ReadLeftPadding();
Function WriteID();
Function ReadID();
Function WriteDescr();
Function ReadDescr();
Function ReadCreator();
Function ReadColumns(index);
Function WriteBottomPadding();
Function ReadBottomPadding();
Function ReadBorders(index);
Function ReadAutoFormatType();
Function WriteApplyStyleRowBands();
Function ReadApplyStyleRowBands();
Function WriteApplyStyleLastRow();
Function ReadApplyStyleLastRow();
Function WriteApplyStyleLastColumn();
Function ReadApplyStyleLastColumn();
Function WriteApplyStyleHeadingRows();
Function ReadApplyStyleHeadingRows();
Function WriteApplyStyleFirstColumn();
Function ReadApplyStyleFirstColumn();
Function WriteApplyStyleColumnBands();
Function ReadApplyStyleColumnBands();
Function ReadApplication();
Function WriteAllowAutoFit();
Function ReadAllowAutoFit();
End;
// ============== 实现 ================= //
Function TSDocxTable.Create(application, docx, table);
Begin
application_ := application;
docx_ := docx;
table_ := table;
End;
// function
Function TSDocxTable.ApplyStyleDirectFormatting(StyleName);
Begin
table_.TblPr.StyleId := docx_.StyleObject().GetStyle(StyleName).Value('StyleId');
table_.Apply();
End;
Function TSDocxTable.AutoFitBehavior(Behavior);
Begin
// TODO : 这里应该使用递归去处理每个单元格
// TODO : 等cell方法完善
case Behavior of
class(TSDocxEnumerations).wdAutoFitContent():
begin
table_.TblPr.WidthType := "auto";
table_.TblPr.Width := 0;
table_.TblApply();
col := table_.Cols();
row := table_.Rows();
for i:=1 to row do
begin
for j:=1 to col do
begin
cell := table_.Cell(i, j);
cell.TcPr.Type := "auto";
cell.TcPr.Width := 0;
cell.Apply();
end
end
end
class(TSDocxEnumerations).wdAutoFitFixed():
begin
end
class(TSDocxEnumerations).wdAutoFitWindow():
begin
table_.TblPr.WidthType := "pct";
table_.TblPr.Width := 5000;
table_.Apply();
end
End;
End;
Function TSDocxTable.Cell(Row, Column);
Begin
return new TSDocxCell(application_, table_, Row, Column);
End;
// property
Function TSDocxTable.ReadBorders(index);
Begin
borders_obj := new TSDocxBordersTable(application_, table_);
return ifnil(index) ? borders_obj : borders_obj[index];
End;
Function TSDocxTable.ReadColumns(index);
Begin
columns_obj := new TSDocxColumns(application_, table_);
return ifnil(index) ? columns_obj : columns_obj[index];
End;
Function TSDocxTable.ReadRows(index);
Begin
rows_obj := new TSDocxRows(application_, table_);
return ifnil(index) ? rows_obj : rows_obj[index];
End;
Function TSDocxTable.WritePreferredWidthType(value);
Begin
End;
Function TSDocxTable.ReadPreferredWidthType();
Begin
End;
Function TSDocxTable.WritePreferredWidth(value);
Begin
End;
Function TSDocxTable.ReadPreferredWidth();
Begin
End;

57
docx/TSDocxTables.tsf Normal file
View File

@ -0,0 +1,57 @@
Type TSDocxTables = Class
public
Function Create(application, docx);
Function Init();
Function Operator[](index);
private
application_;
docx_;
public
Function Add(Range, NumRows, NumColumns, DefaultTableBehavior, AutoFitBehavior);
Function Item(Index);
property Application read ReadApplication;
property Count read ReadCount;
property Creator read ReadCreator;
property NestingLevel read ReadNestingLevel;
property Parent read ReadParent;
Function ReadParent();
Function ReadNestingLevel();
Function ReadCreator();
Function ReadCount();
Function ReadApplication();
End;
// ============== 实现 ================= //
Function TSDocxTables.Create(application, docx);
Begin
application_ := application;
docx_ := docx;
Init();
End;
Function TSDocxTables.Init();
Begin
End;
Function Operator TSDocxTables.[](index);
Begin
table := docx_.GetTable(index - 1);
return table ? new TSDocxTable(application_, docx_, table) : nil;
End;
// function
Function TSDocxTables.Item(Index);
Begin
return self[Index];
End;
// property
Function TSDocxTables.ReadCount();
Begin
return docx_.TablesCount();
End;

101
test/docx_test.tsl Normal file
View File

@ -0,0 +1,101 @@
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);
TestTableCell(application);
Documents[2].SaveAs2(FileName : savepath);
println("savepath = {}", savepath);
return;
End;
Function TestTables(application);
Begin
ActiveDocument := application.ActiveDocument;
// ActiveDocument.Tables(1).ApplyStyleDirectFormatting('样式1');
End;
Function TestTableCell(application);
Begin
ActiveDocument := application.ActiveDocument;
// tables := application.ActiveDocument.Tables;
// tables[1].AutoFitBehavior(class(TSDocxEnumerations).wdAutoFitContent());
// tables[1].Cell(1, 1).Delete(class(TSDocxEnumerations).wdDeleteCellsEntireColumn());
// tables[1].Cell(1, 1).Delete(class(TSDocxEnumerations).wdDeleteCellsEntireRow());
// tables[1].Cell(3, 3).Delete(class(TSDocxEnumerations).wdDeleteCellsShiftLeft());
// tables[1].Cell(1, 2).Delete(class(TSDocxEnumerations).wdDeleteCellsShiftUp());
// tables[1].Cell(5, 3).Delete(class(TSDocxEnumerations).wdDeleteCellsShiftUp());
// tables2 := ActiveDocument.Tables(2);
// tables2.Cell(1, 1).Delete(class(TSDocxEnumerations).wdDeleteCellsEntireColumn());
// tables2.Cell(1, 1).Delete(class(TSDocxEnumerations).wdDeleteCellsEntireRow());
// tables2.Cell(3, 3).Delete(class(TSDocxEnumerations).wdDeleteCellsShiftLeft());
// tables2.Cell(1, 2).Delete(class(TSDocxEnumerations).wdDeleteCellsShiftUp());
// tables2.Cell(5, 3).Delete(class(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 := class(TSDocxEnumerations).wdCellAlignVerticalBottom();
// ActiveDocument.Tables(2).Cell(1, 2).VerticalAlignment := class(TSDocxEnumerations).wdCellAlignVerticalCenter();
// ActiveDocument.Tables(2).Cell(2, 2).VerticalAlignment := class(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(class(TSDocxEnumerations).wdAutoFitContent());
// ActiveDocument.Tables(2).Cell(3, 3).Tables(1).Cell(1, 1).Delete(class(TSDocxEnumerations).wdDeleteCellsEntireColumn());
// ActiveDocument.Tables(1).Cell(1, 1).Shading.Texture := class(TSDocxEnumerations).wdTextureHorizontal();
ActiveDocument.Tables(3).Cell(2,1).PreferredWidthType := class(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);
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 TestTableBorders();
Begin
// ActiveDocument.Tables(1).Borders(class(TSDocxEnumerations).wdBorderDiagonalUp).LineStyle := class(TSDocxEnumerations).wdLineStyleSingle;
// ActiveDocument.Tables(1).Cell(1, 1).Borders(class(TSDocxEnumerations).wdBorderDiagonalDown).LineStyle := class(TSDocxEnumerations).wdLineStyleSingle;
// ActiveDocument.Tables(1).Columns(1).SetWidth(100, class(TSDocxEnumerations).wdAdjustSameWidth());
// ActiveDocument.Tables(3).Columns(2).PreferredWidthType := class(TSDocxEnumerations).wdPreferredWidthPercent;
// ActiveDocument.Tables(3).Columns(2).PreferredWidth := 50;
// println("ActiveDocument.Tables(3).Columns(2).PreferredWidth = {}", ActiveDocument.Tables(3).Columns(2).PreferredWidth);
End;

View File

@ -1,26 +1,26 @@
Type Collection = class
Type Collection = Class
public
Function Create();
Function SetIgnoreCase(value);
Function SetActivate(value);
Function GetActivate();
Function CalNewName(prefix);
Function CompareFunction(index, data);
Function SetIgnoreCase(value);
Function SetActivation(value);
Function GetActivation();
Function CalNewName(prefix);
Function AddCollection(obj, name);
Function RemoveCollection(index);
Function Operator[](index);
Function GetCount();
public
class Function GetInstance(value);
private
ignorecase_; // 忽略大小写
container_; // 容器对象
fp_; // 函数指针 -- 用来比较
activate_; // 激活的对象
activation_; // 激活的对象
public
class Function GetInstance(value);
private
static collection_;
@ -40,14 +40,14 @@ Begin
ignorecase_ := value;
End;
Function Collection.SetActivate(value);
Function Collection.SetActivation(value);
Begin
activate_ := self[value];
activation_ := self[value];
End;
Function Collection.GetActivate();
Function Collection.GetActivation();
Begin
return activate_;
return activation_;
End;
Function Collection.CompareFunction(index, data);

42
utils/TSVbaBase.tsf Normal file
View File

@ -0,0 +1,42 @@
Type TSVbaBase = class
public
Function Create(app, par, cre);
private
application_;
parent_;
creator_;
property Application read ReadApplication;
property Parent read ReadParent;
property Creator read ReadCreator;
Function ReadApplication();
Function ReadParent();
Function ReadCreator();
End;
// ============== 实现 ================= //
Function TSVbaBase.Create(app, par, cre);
Begin
application_ := app;
parent_ := par;
creator_ := cre;
End;
// property
Function TSVbaBase.ReadApplication();
Begin
return application_;
End;
Function TSVbaBase.ReadParent();
Begin
return parent_;
End;
Function TSVbaBase.ReadCreator();
Begin
return creator_;
End;

View File

@ -0,0 +1,74 @@
Type Collection = class
public
Function Create();
Function AddCollection(obj, name);
Function RemoveCollection(index);
Function SetIgnoreCase(value);
Function GetCount();
Function CalNewName(prefix);
Function Operator[](index);
private
name_collection_;
index_collection_;
name_index_;
ignorecase_; // 是否启用大小写无关
End;
// ============== 实现 ================= //
Function Collection.Create();
Begin
name_collection_ := array();
index_collection_ := array();
name_index_ := array();
ignorecase_ := false;
End;
Function Collection.AddCollection(obj, name);
Begin
name_collection_[ignorecase_ ? lowercase(name) : name] := obj;
index := length(index_collection_) + 1;
index_collection_[index] := obj;
name_index_[index] := name;
name_index_[name] := index;
End;
Function Collection.RemoveCollection(index);
Begin
arr1 := array(index : nil);
arr2 := array(name_index_[index] : nil);
reindex(index_collection_, arr1);
reindex(name_collection_, arr2);
reindex(name_index_, arr1);
reindex(name_index_, arr2);
if ifnumber(index) then
for k, v in index_collection_ do
if k > index then reindex(index_collection_, array(k : k - 1));
End;
Function Collection.SetIgnoreCase(value);
Begin
ignorecase_ := value;
End;
Function Collection.GetCount();
Begin
return length(name_collection_);
End;
Function Collection.CalNewName(prefix);
Begin
len := length(name_collection_) + 1;
name := prefix $ len;
while name in name_collection_ do
name := prefix $ ++len;
return name;
End;
Function Operator Collection.[](index);
Begin
if ifnumber(index) then return index_collection_[index];
return name_collection_[ignorecase_ ? lowercase(index) : index];
End;

View File

@ -398,12 +398,12 @@ End;
Function Workbook.ReadWorkSheets(index);
Begin
if ifnil(index) then return worksheets_;
return worksheets_.worksheet(index);
return worksheets_[index];
End;
Function Workbook.ReadActiveSheet();
Begin
return worksheets_.GetCollection().GetActivate();
return worksheets_.GetCollection().GetActivation();
End;
Function Workbook.ReadFullName();

View File

@ -4,6 +4,9 @@ public
Function Create();
Function Operator[](index);
private
Function AddWorkbook(xlsx, name); // Completed
private
collection_;
@ -30,9 +33,6 @@ public
Function ReadCreator();
Function ReadParent();
private
Function AddWorkbook(xlsx, name); // Completed
End;
// ============== 实现 ================= //
@ -41,6 +41,12 @@ Begin
collection_ := class(Collection).GetInstance('workbook');
End;
Function Workbooks.AddWorkbook(xlsx, fullname);
Begin
name := ExtractFileName(fullname);
collection_.AddCollection(new Workbook(xlsx, name, fullname), name);
End;
Function Operator Workbooks.[](index);
Begin
return collection_[index];
@ -70,11 +76,6 @@ End;
Function Workbooks.ReadItem(index);
Begin
return collection_[index];
return self[index];
End;
Function Workbooks.AddWorkbook(xlsx, fullname);
Begin
name := ExtractFileName(fullname);
collection_.AddCollection(new Workbook(xlsx, name, fullname), name);
End;

View File

@ -71,7 +71,7 @@ End;
Function Worksheet.Activate();
Begin
collection_.SetActivate(sheet_name_);
collection_.SetActivation(sheet_name_);
return xlsx_.SetDefaultSheet(sheet_name_);
End;

View File

@ -42,7 +42,7 @@ Begin
sheets := xlsx_.GetSheets();
for k, v in sheets do
collection_.AddCollection(new Worksheet(xlsx_, v, collection_), v);
collection_.SetActivate(xlsx_.GetDefaultSheet());
collection_.SetActivation(xlsx_.GetDefaultSheet());
End;
Function Operator Worksheets.[](index);

View File

@ -1,11 +1,11 @@
Type Application = class
Type XlsxApplication = class
public
Function Create();
Function Init();
public
Property Workbooks read ReadWorkbooks; // Completed
property Workbooks read ReadWorkbooks; // Completed
Function ReadWorkbooks(index);
private
@ -14,17 +14,17 @@ private
End;
// ============== 实现 ================= //
Function Application.Create();
Function XlsxApplication.Create();
Begin
Init();
End;
Function Application.Init();
Function XlsxApplication.Init();
Begin
workbooks_ := new Workbooks();
End;
Function Application.ReadWorkbooks(index)
Function XlsxApplication.ReadWorkbooks(index)
Begin
if ifnil(index) then return workbooks_;
return workbooks_[index];