CAWT 2.9.5

CAWT is a TWAPI-based TCL utility package to interact with COM interfaces on Windows systems. It provides specialised bindings for Word, Excel, PowerPoint, MSIE, Outlook, Matlab, and Google Earth.

Tags tcl c win32 com twapi word excel matlab
License BSDL
State stable

Recent Releases

2.9.513 Mar 2024 21:25 minor feature: Maintenance release. CawtCore: Take care of changed Img behaviour in procedure ImgToClipboard: Img 2.0 returns image data as binary string. Img 1.4 returns image data as base64 encoded string. CawtOutlook: Added new options "-requiredattendees" and "-optionalattendees" to procedures GetAppointmentProperties and AddAppointment.
2.9.418 Jul 2023 08:25 minor feature: Maintenance release. CawtWord: Extended validity detection of sub-addresses in procedure GetHyperlinksAsDict to include and. addresses.
2.9.321 Mar 2023 06:25 minor feature: Maintenance release. CawtExcel: Corrected default value of parameter worksheetNameOrIndex from 0 to 1 in procedures ExcelFileToWikitFile and ExcelFileToMediaWikiFile. Added test script showing how to export an Excel workbook as Wikit tables with hyperlinks. CawtWord: Extended validity detection of sub-addresses in procedure GetHyperlinksAsDict to include "" in addition to. "" addresses. New procedures in CawtPpt: GetCommentKeyLeftPosition, GetCommentKeyPosition. External packages: Updated Img to version 1.4.14. Updated Ruff! to version 2.3.0. Updated Tablelist to version 6.20. Updated tDOM to version 0.9.3. Updated Twapi to version 4.7.2.
2.9.222 Dec 2022 10:45 minor bugfix: Maintenance release. CawtWord: Extended SetTableName and GetTableName to specify or retrieve the descriptive table text. Test programs and documentation: Corrected links due to new Ruff! version.
2.9.115 Apr 2022 03:25 minor feature: Maintenance release. CawtExcel: Added option "-selection" to procedure WorksheetToTablelist to transfer the selected Excel cell range. Corrected regexp in procedures GetRangeAsIndex and GetCellValueA1. CawtOutlook: Improved GetFoldersRecursive. New procedures in CawtWord: GetHeadingsAsDict, PrintHeadingDict.
2.9.020 Dec 2021 03:45 major feature: Added functionality for interpolation curves. CawtCore: Added oo:class to interpolate between control points. CawtWord: GetHyperlinksAsDict: Improved speed of URL validity check. Added support for URL's with subaddress (ex. www.tcl3d.org/doc.html#Index). New procedures in CawtCore: IsValidUrlAddress, SetClipboardWaitTime, WaitClipboardReady. New procedures in CawtPpt: IsValidPresId, GetCurrentSlideIndex. External packages: Updated Ruff! to version 2.0. Updated Tablelist to version 6.16. Updated Twapi to version 4.6.0.
2.8.221 Aug 2021 21:05 minor bugfix: Maintenance release. CawtWord: Corrected behaviour of GetHyperlinksAsDict, if link points to an URL with spaces. Extended SetTableOptions with new option -width. Extended SetColumnWidth to specify width in percent.
2.8.122 Jul 2021 07:05 minor bugfix: release. CawtExcel: Added automatic mapping of worksheet names to Excel constraints regarding invalid characters and maximum length. CawtWord: Corrected behaviour of GetHyperlinksAsDict, if link points to an invalid domain.
2.8.028 Jun 2021 06:45 major feature: Added functionality for embedding applications. CawtExcel: Extended procedure OpenWorkbook to embed the application into a Tk frame. CawtPpt: Extended procedure OpenPres to embed the application into a Tk frame. CawtReader: Extended procedure Open to embed the application into a Tk frame. CawtWord: Extended procedure OpenDocument to embed the application into a Tk frame. New procedures in CawtCore: EmbedApp, SetEmbedTimeout. New procedures in CawtExcel: GetNumStyles, GetStyleId. New procedures in CawtWord: GetNumPages, SetViewParameters. External packages: Updated Tablelist to version 6.14. Updated Ruff! to version 1.2.
2.7.027 Feb 2021 16:25 major feature: Enhanced functionality for handling Outlook contacts. CawtCore: Extended procedure CountWords to additionally sort by increasing or decreasing counts. CawtExcel: Changes in procedure WorksheetToTablelist: Improved speed when handling worksheets with large number of columns. Tablelist column headers are labeled like in Excel: A, B, C. Added options -header, -rownumber, maxrows, -maxcols. CawtWord: Extended GetHyperlinksAsDict to be used as a coroutine. New procedures in CawtOutlook: AddContact, AddContactFolder, DeleteContactByIndex, DeleteContactFolder, GetContactByIndex, GetContactFolderId, GetContactFolderNames, GetContactProperties, GetNumContactFolders, GetContactReadOnlyPropertyNames, GetContactReadWritePropertyNames, GetNumContacts, HaveContactFolder, SetContactProperties. New procedures in CawtPpt: GetNumSlideImages, GetNumSlideVideos, GetSlideIdByName, GetSlideImages, GetSlideName, GetSlideVideos, SetSlideName. New procedures in CawtWord: GetBookmarkNames, GetHyperlinksAsDict, PrintHyperlinkDict, GetNumHyperlinks. External packages: Updated Tablelist to version 6.12. Updated Ruff! to version 1.1.
2.6.007 Jan 2021 13:25 major feature: New module CawtSapi adding support for Microsoft Speech API. New procedures in CawtCore: SetEventCallback. External packages: Updated Twapi to version 4.5.2. Updated Tablelist to version 6.11. Updated tDOM to version 0.9.2. Updated Img to version 1.4.12.
2.5.025 Jul 2020 07:45 major feature: Enhanced functionality for handling Office document properties. CawtOffice: Extended to support all types of document properties: bool, int, float, date and string. New procedures in CawtOffice: AddProperty, DeleteProperty, GetProperty, GetPropertyName, GetPropertyType, GetPropertyValue, SetPropertyValue.
2.4.910 Jun 2020 14:05 minor bugfix: Enhanced functionality in Excel module All modules: Compare procedure options with -nocase. CawtExcel: when reading CSV files with Unix line endings. New procedures in CawtExcel: SetRangeFontAttributes, GetRangeFontAttributes.
2.4.809 Mar 2020 20:05 minor feature: Support for Office macro execution. CawtExcel: in DiffExcelFiles. CawtWord: COM object leak in IsValidCell. New procedures in CawtCore: GetTmpDir. New procedures in CawtOffice: AddMacro, RunMacro. New procedures in CawtExcel: GetCellValueA1. New procedures in CawtWord: GetRangeScreenPos.
2.4.702 Nov 2019 16:05 minor feature: Enhanced functionality in Ppt and Word modules. CawtPpt: Extended InsertImage to support both image file names as well as photo images. Corrected procedure ExportPptFile. Added additional "-check" option to proc CreateVideo to specify the check interval. New procedures in CawtPpt: GetPptImageFormat, GetSupportedImageFormats, GetCreateVideoStatus, IsImageFormatSupported. New procedures in CawtWord: SetPageSetup, GetCrossReferenceItems, GetHeadingRanges, GetRangeText, SetRangeFontColor, GetRangeFont, SetRangeFont.
2.4.613 Oct 2019 21:45 minor feature: Enhanced reference documentation. CawtCore: Extended test suite for complete test coverage. in procedure GetColorNames. Office modules: Added procedures for each enumeration type. CawtPpt: Added new option "-fit" to proc InsertImage. New procedures in CawtPpt: CheckCreateVideoStatus, CreateVideo, SetSlideShowTransition, GetPresPageHeight, GetPresPageWidth. External packages: Updated Ruff! to version 1.0b3.
2.4.514 Aug 2019 19:05 minor bugfix: Enhanced functionality in Word module. CawtWord: Corrected procedures FindString and Search, when called with a docId. New procedures in CawtWord: GetFooterText, GetHeaderText, DeleteSubdocumentLinks, ExpandSubdocuments, GetNumSubdocuments, GetSubdocumentPath. External packages: Updated Tablelist to version 6.6. Updated Twapi to version 4.3.7.
2.4.409 Jun 2019 21:05 minor feature: Enhanced functionality in several modules. CawtCore: Added new utility procedures *OfficeDate*. Declared old *OutlookDate procedures as obsolete. CawtExcel: Extended procedure GetCellRange to allow specification of a cell range, not only a single cell. Extended procedure AddSeriesTrendLine with option keys. -linewidth and -linecolor. New procedure in CawtExcel: SetSeriesAttributes. New procedures in CawtWord: SetTableAlignment, SetTableOptions, SetTableVerticalAlignment. External packages: Updated Tablelist to version 6.5. Updated Img to version 1.4.9.
2.4.328 Dec 2018 14:05 minor feature: Support for Office 2019. CawtOffice: Added script DocumentInfo.tcl to retrieve information about Office documents. CawtWord: Extended procedure GetRowRange to use start and end rows. Extended procedure GetNumImages to consider both InlineShapes as well as Shapes. New procedure in CawtOffice: GetOfficeType. New procedure in CawtExcel: AddSeriesTrendLine. New procedures in CawtPpt: GetCommentKeyTopPosition, GetNumShapes, GetPresImages, GetPresVideos, GetShapeId, GetShapeMediaType, GetShapeName, GetShapeType, InsertVideo, SetShapeName, SetMediaPlaySettings. New procedures in CawtWord: CollapseRange, CopyRange, DeleteTable, GetImageList, GetPageSetup, GetRowId, GetTableIdByName, GetTableName, IsVisible, MergeCells, ScreenUpdate, SetCellVerticalAlignment, SetHeadingFormat, SetRowHeight, SetTableName. External packages: Updated Tablelist to version 6.3. Updated Img to version 1.4.8. Updated Twapi to version 4.3.5. Updated tDOM to version 0.9.1.
2.4.228 Apr 2018 01:25 minor feature: Enhanced functionality in several modules. CawtPpt: Added new configure options for shapes: -beginsite, -endsite Added new configure option for connectors: -weight. CawtWord: Corrected procedure SetDocumentProperty. New procedures in CawtExcel: Import, CopyColumn, SetChartSourceByIndex, SetChartTitle, GetChartNumSeries, GetChartSeries, SetSeriesLineWidth. New procedures in CawtPpt: SetPresPageSetup, SetHyperlinkToSlide, GetNumSites. New procedures in CawtWord: DeleteRow, SetRangeMergeCells.
2.4.131 Dec 2017 06:45 minor feature: Enhanced functionality in Outlook module. CawtOutlook: Added handling of appointments, calendars and categories. Added ability to read and apply Outlook holiday files. CawtExcel: Added ability to save CSV files in UTF-8 format. New procedures in CawtExcel: CreateRangeString, SetChartTicks. New procedures in CawtWord: AddImageTable, GetImageId, GetImageName, GetNumImages, ReplaceImage, SetImageName, CountWords. External packages: Updated Tablelist to version 6.0. Updated Twapi to version 4.2.12. Updated tDOM to version 0.9.
2.4.020 Jun 2017 18:25 major feature: New module CawtReader. Compatibility : Excel::ExcelFileToHtmlFile has changed signature. Now uses parameter args for extended options. CawtReader: Added basic functionality for Acrobat Reader (not via COM). CawtExcel: Extended module excelHtml to convert Excel hyperlinks. New procedures in CawtWord: IsValidCell. External packages: Updated Tablelist to version 5.17. Updated Twapi to version 4.2a5.
2.3.112 Dec 2016 09:45 minor feature: Enhanced functionality in Core and Office modules. CawtExcel: Extended Excel module excelImgRaw to support 16-bit integer images. New procedures in CawtCore: CheckBoolean. New procedures in CawtExcel: GetCellComment. New procedures in CawtWord: Search SetRangeFontBackgroundColor. External packages: Updated Img (32 and 64 bit) to version 1.4.6. Updated Tablelist to version 5.16.
2.3.017 Aug 2016 03:18 major feature: New module CawtOneNote. Compatibility : Excel::GetRangeAsIndex now returns a 2-element (cell) or 4-element (range) list. Previous behaviour was to always return a 4 element list. CawtOneNote: Added basic functionality for Microsoft OneNote. Added script OneNoteInfo.tcl to retrieve information from OneNote. New procedures in CawtExcel: DuplicateColumn, DuplicateRow, GetHiddenRows, HideRow, InsertColumn, InsertRow, GetColumnNumber, ShowWorksheet, IsWorksheetEmpty, GetRangeWrapText, SetRangeWrapText, SetRangeValues, GetRangeValues, IsWorkbookId, GetWorkbookIdByName, IsWorkbookOpen, SetNamedRange, GetNamedRange, GetNamedRangeNames. New procedures in CawtOutlook: CreateHtmlMail. External packages: Updated Tablelist to version 5.15. Updated Twapi to version 4.2a3. New package tDOM 0.8.3 (needed for CawtOneNote).
2.2.013 Dec 2015 03:15 major feature: Enhanced functionality in Core and Office modules. Compatibility : AddWorksheet now adds the new sheet at the end, as was already written in the documentation. Previous behaviour was to insert before active worksheet. New module CawtOffice: Moved basic Office procedures into namespace Office. Added aliases in namespace Cawt for backwards compatibility. Added new enumeration constants file for basic Office types based on type library in mso.dll. CawtCore: Colors can now be specified in hex notation, Tcl color names, RGB or as Office color numbers. CawtExcel: Extended SetLinkToCell to copy number format when linking. Extended SetRangeFormat to accept Excel style number formats. Extended SetHyperlinkToFile to accept relative path names. Corrected hyperlinking to relative file names. New procedures in CawtCore: GetColor, GetColorNames, IsHexColor, IsNameColor, IsOfficeColor, IsRgbColor OfficeColorToRgb, RgbToOfficeColor. New procedures in CawtExcel: CopyRange, GetCurrencyFormat, GetRangeFormat. New procedures in CawtPpt: AddShape, ConfigureShape, ConnectShapes, ConfigureConnector. New procedures in CawtWord: SetHyperlinkToFile.
2.1.211 Nov 2015 06:45 minor feature: Extended support for Excel page setup. Changed all Office procedures with size parameters to accept inches, centimeters or points. CawtExcel: Corrected SetWorksheetFitToPages to accept zero as values for wide and tall parameters. Zero indicates automatic determination of number of pages. New procedures in CawtCore: SetPrinterCommunication, ValueToPoints, PointsToCentiMeters, PointsToInches. New procedures in CawtExcel: SetWorksheetPrintOptions, SetWorksheetPaperSize, SetWorksheetMargins, SetWorksheetFooter, SetWorksheetHeader.
2.1.002 Sep 2015 10:25 major feature: Updated Twapi to version 4.2.a1, because of new Twapi functionality "tclcast bstr" and to retrieve document properties. Added support to generate a CAWT starpack. CawtExcel: Take hidden flag of both Excel and tablelist columns into account in procedures TablelistToWorksheet and WorksheetToTablelist. SetCellValue and SetRangeFormat using new TclString procedure. CawtPpt: Extended functionality of ExportPptFile and ExportSlides to take into account slide comments regarding export file names. New procedures in CawtCore: TclString. New procedures in CawtExcel: DeleteColumn, DeleteRow, HideColumn, GetHiddenColumns, GetDecimalSeparator (replacing GetFloatSeparator), GetThousandsSeparator, GetNumberFormat (replacing GetLangNumberFormat). New procedures in CawtPpt: AddTextbox, AddTextboxText, SetTextboxFontSize, GetNumComments, GetComments, GetCommentKeyValue. New procedures in CawtWord: AddContentControl, SetContentControlDropdown, SetContentControlText, GetDocumentProperties, GetDocumentProperty, SetDocumentProperty.
2.0.031 Mar 2015 12:45 minor feature: Ensembled all CAWT namespaces. All Office enumerations are stored in module specific hash tables. Updated and extended user manual. Added application EnumExplorer.tcl to display Office enumerations. New module excelHtml.tcl for HTML export of Excel tables. External packages: Updated Twapi to version 4.1.27. Updated Img (32 and 64 bit) to version 1.4.3. Updated Tablelist to version 5.13. CawtExcel: New implementation of InsertImage. CawtWord: Extended procedure UpdateFields to update TablesOfContents and TablesOfFigures of a document. New procedures in CawtCore: GetApplicationVersion, IsApplicationId, PushComObjects, PopComObjects, PrintNumComObjects, CheckComObjects, GetComObjects, GetNumComObjects Replaced procedure IsValidId with IsComObject New procedures in CawtExcel: GetRangeAsIndex, GetRangeAsString, GetRangeTextColor New procedures in CawtWord: ScaleImage, SetInternalHyperlink, InsertFile, DiffWordFile .
1.2.014 Dec 2014 14:45 major feature: Compatibility issue: Incompatible changes in module CawtWord. Removed parameter docId from all procedures, which had both docId and rangeId parameters: SetRangeStartIndex, SetRangeEndIndex, ExtendRange, AddText, SetHyperlink, AddTable. CawtExcel: Added optional startRow parameter to TablelistToWorksheet. Extended test suite for changed and new procedures. New procedures in CawtWord: GetDocumentId, SetRangeFontUnderline, CreateRangeAfter, InsertCaption, ConfigureCaption, AddBookmark, GetBookmarkName, SetLinkToBookmark, GetListGalleryId, GetListTemplateId, InsertList