OfficeSuite 2.40 Features

OfficeSuite 2.40 Features

OfficeSuite 2.40 Features

OfficeSuite is the smart choice for office productivity. Combining all the features that you need to read, edit, and create Word docs, Excel. OfficeSuite 2.40. Direct Download DOWNLOAD CRACK + KEYOfficeSuite 12.0.39065 Crack Latest Version Download 2022 OfficeSuite, the award-winning. OfficeSuite Pro + PDF is a well-known application and is currently an office application that many people trust due to its intelligence and modernity.

We are sorry, eCoupon {0} {1} has been fully claimed

We are sorry, eCoupon {0} {1} has been fully claimed. Refresh and try when others quit.

{0} coupons left to claim

Compare

Added!

Build Your PC

View {0} Model

View {0} Models

Configure/Buy

Add To Cart

This model is configurable! Click Build Your PC to start configuring.

Earn Double Rewards

Earn Triple Rewards

4X Rewards

5X Rewards

Huge Rewards

Earn

 in Rewards

Double Rewards

JOIN MYLENOVO
REWARDS!!

• Earn & redeem rewards

• Engagement rewards

• Member exclusive offers

• Free to Join — Join now!

Coming Soon

New Options Available

Available Soon

READY TO SHIP

Price Match Guarantee

/shopping-faq/#payments

off

Save

Lenovo Outlet Price

Your price

List Price

List Price

List Price is Lenovo’s estimate of product value based on the industry data, OfficeSuite 2.40 Features, including the prices at which first and third-party retailers and etailers have offered or valued the same or comparable products. Third-party reseller data may not be based on actual sales.

Est Value

Est Value (Estimated Value)

Estimated value is Lenovo’s estimate of product value based on OfficeSuite 2.40 Features data, including the prices at which Lenovo and/or third-party retailers and e-tailers have offered or valued the same or comparable products. Third-party data may not be based on actual sales.

Est Value:

Exclusive Price:

Starting at

Instant Savings

eCoupon Savings:  

Additional Savings

Show Price Breakdown

Hide Price Breakdown

Use eCoupon

Includes

Features

Key Details

Part Number

See More

See Less

 

Coming Soon

more

expanded

collapsed

See More Details

Great choice!

You may compare up to 4 products per product category (laptops, desktops, etc). Please de-select one to add another.

View Your Comparisons

One moment please.

Search on Lenovo.com Public Website

& Up

Shipping Options

Update Zip Code

Response Error

Input Format Error

Pts

FREE

Delivery options for {0}

Specs Text Link

Specs Teaser Content

Specs Teaser Link

Learn More

Show details

Hide details

view.more.details

Includes {qty} items

(Qty: {qty})

read more

Join Now!

OR

*Savings cannot be combined

Undecided?

Call our Sales Team at:

Mon-Fri 9am-5:30pm GMT

Save

Hide quote dialog

Sign in or Create an Account

Sign In

Email Address

Password

Not enrolled for rewards? Join Now

By joining, you agree to the Terms of Use and you are opting in to receive Lenovo marketing communications via email.

/rewards/terms/

Terms of Use

Remember me

Forgot your username or password?

Create an Account

You can store addresses, easily keep track of your orders and save items in your cart for later.

Create an Account to Save Your Cart

Create an Account

You can store addresses, easily keep track of your orders and save items in your cart for later.

The email format is incorrect, please try again

First Name

Maximum length is 50 characters

Last Name

Password must have at least

8-20 characters

Include two of the following: letters, numbers, and symbols($!#&)

Confirm Password

I agree to opt-in to Lenovo communications and I understand that my data will not be shared.

Yes, I have read and accepted the Terms of Use and Privacy Policy.

Please agree the terms and privacy policy

By joining, you agree to the Terms & Conditions and you are opting in to receive Lenovo marketing communications via email.

If you would like to earn rewards, you will need to check the join Rewards checkbox above. To create an account without earning Rewards, register below.

Register

Sorry, the Email you entered is incorrect

Sorry, the password you entered is incorrect

We are sorry, eCoupon {0} {1} has been fully claimed

We are sorry, eCoupon {0} {1} has been fully claimed. Refresh and try when others quit.

{0} coupons left to claim

Compare

Added!

Build Your PC

View {0} Model

View {0} Models

Configure/Buy

Add To Cart

This model is configurable! Click Build Your PC to start configuring.

Earn Double Rewards

Earn Triple Rewards

4X Rewards

5X Rewards

Huge Rewards

Earn

 in Rewards

Double Rewards

JOIN MYLENOVO
REWARDS!!

• Earn & redeem rewards

• Engagement rewards

• Member exclusive offers

• Free to Join — Join now!

Coming Soon

New Options Available

Available Soon

READY TO SHIP

Price Match Guarantee

/shopping-faq/#payments

off

Save

Lenovo Outlet Price

Your price

List Price

List Price

List Price is Lenovo’s estimate of product value based on the industry data, including the prices at which first and third-party retailers and etailers have offered or valued the same or comparable products. Third-party reseller data may not be based on actual sales.

Est Value

Est Value (Estimated Value)

Estimated value is Lenovo’s estimate of product value based on industry data, including the prices at which Lenovo and/or third-party retailers and e-tailers have offered or valued the same or OfficeSuite 2.40 Features products. Third-party data may not be based on actual sales.

Est Value:

Exclusive Price:

Starting at

Instant Savings

eCoupon Savings:  

Additional Savings

Show Price Breakdown

Hide Price Breakdown

Use eCoupon

Includes

Features

Key Details

Part Number

See More

See Less

 

Coming Soon

expanded

collapsed

See More Details

Great choice!

You may compare up to 4 products per product category (laptops, desktops, etc). Please de-select one to add another.

View Your Comparisons

One moment please.

Search on Lenovo.com Public Website

& Up

Shipping Options

Update Zip Code

Response Error

Input Format Error

Pts

FREE

Delivery options for {0}

Specs Text Link

Specs Teaser Content

Specs Teaser Link

Learn More

Show details

Hide details

Includes {qty} items

(Qty: {qty})

read more

Join Now!

OR

*Savings cannot be combined

Undecided?

Call our Sales Team at:

Mon-Fri 9am-5:30pm GMT

Save

Hide quote dialog

Sign in or Create an Account

Sign In

Email Address

Password

Not enrolled for rewards? Join Now

By joining, you agree to the Terms of Use and you are opting in to receive Lenovo marketing communications via email.

/rewards/terms/

Terms of Use

Remember me

Forgot your username or password?

Create an Account

You can store addresses, easily keep track of your orders and save items in your cart for later.

Create an Account to Save Your Cart

Create OfficeSuite 2.40 Features Account

You can store addresses, easily keep track of your orders and save items in your cart for later.

The email format is incorrect, please try again

First Name

Maximum length is 50 characters

Last Name

Password must have at least

8-20 characters

Include two of the following: letters, numbers, and symbols($!#&)

Confirm Password

I agree to opt-in to Lenovo communications and I understand that my data will not be shared.

Yes, I have read and accepted the Terms of Use and Privacy Policy.

Please agree the terms and privacy policy

By joining, you agree to the Terms & Conditions and you are opting in to receive Lenovo marketing communications OfficeSuite 2.40 Features email.

If you would like to earn rewards, you will need to check the join Rewards checkbox above. To create an account without earning Rewards, register below.

Register

Sorry, the Email you entered is incorrect

Sorry, the password you entered is incorrect

This is a recommends products dialog

Top Suggestions

Starting at

View All >

Français

English

Hi

\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/

Otherwise it calls. If you know in advance what type of data needs to be written, you can call the specific method, OfficeSuite 2.40 Features, and otherwise you can just use .

Here is another example that demonstrates some of these features:

#!/usr/bin/perl -w use strict; use Spreadsheet::WriteExcel; # Create a new Excel workbook my $workbook = Spreadsheet::WriteExcel->new("regions.xls"); # Add some worksheets my $north = $workbook->addworksheet("North"); my $south = $workbook->addworksheet("South"); my $east = $workbook->addworksheet("East"); my $west AutoDWG PDF to DWG Converter Pro Offline Installer = $workbook->addworksheet("West"); # Add a caption to each worksheet foreach my $worksheet (@{$workbook->{worksheets}}) { $worksheet->write(0, 0, "Sales"); } # Write some data $north->write(0, 1, 200000); $south->write(0, 1, 100000); $east->write (0, 1, 150000); $west->write (0, 1, 100000); # Set the active worksheet $south->activate();

The output from this program is shown in Figure 2.


You can also create a new Excel file using the special Perl filehandle - which redirects the output to STDOUT. This is useful for CGI programs generating data with a content-type of .

#!/usr/bin/perl -w use strict; use Spreadsheet::WriteExcel; # Send the content type print "Content-type: application/vnd.ms-excel\n\n"; # Redirect the output to STDOUT my $workbook = Spreadsheet::WriteExcel->new("-"); my $worksheet = $workbook->addworksheet(); $worksheet->write(0, 0, "The Perl Journal");

The Spreadsheet::WriteExcel module also provides a method which can be used to close the Excel file explicitly. As usual, the file will be closed automatically when the object reference goes out of scope or when the program ends.

Finally, the following is a slightly more useful example - a Perl program that converts a tab-delimited file into an Excel file:

#!/usr/bin/perl -w use strict; use Spreadsheet::WriteExcel; # Check for valid number of arguments if (($#ARGV < 1)

OfficeSuite, the award-winning and premier Android office app is now here for Windows PC. The free and robust productivity suite is fully compatible with Microsoft Office formats and allows you to quickly and OfficeSuite 2.40 Features work, create and organize all your documents, spreadsheets, presentations and OfficeSuite 2.40 Features. With the cross-platform support for Android, iOS and Windows PC, as well as OfficeSuite 2.40 Features for all major Cloud providers you can have your documents with you wherever you go.

Key Features include:

  • Full compatibility with all popular formats including DOC, DOCX, DOCM, XLS, XLSX, XLSM, PPT, PPTX, PPS, PPSX, PPTM, PPSM.
  • Cross-platform support between PC, Android and iOS, OfficeSuite 2.40 Features. Synchronization between devices through an OfficeSuite account.
  • Powerful PDF integration including converting PDFs to Word, Excel, or ePub, permissions management, text to PDF, and annotations.
  • Free 15GB document storage on OfficeSuite Drive once you sign in.
  • Fully compatible with popular Cloud providers including iCloud, Google Drive, Dropbox, Box, OneDrive, SugarSync, WebDAV, Amazon Cloud Drive.
  • Sharing via email, Bluetooth, as well as all messaging apps.
  • Localized in Japanese, Russian, Spanish, German, French, Italian, Thai, Chinese (Simplified), Hindi and Bulgarian.

Get the most out of OfficeSuite by upgrading your free account to any of the available payment plans (Personal, Group or Business) and receive:

  • Export PDFs to editable Word, Excel, and ePub files.
  • Print documents without a watermark.
  • Convert documents to PDFs without a watermark.
  • Priority support.

Technical

Title:
OfficeSuite 2.40 for Windows
Requirements:
  • Windows 7,
  • Windows 10,
  • Windows 11,
  • Windows 8.1,
  • Windows 8
Language:
English
Available languages:
  • English,
  • German,
  • Spanish,
  • French,
  • Italian,
  • Japanese,
  • Polish,
  • Chinese
License:
Free
Latest update:
Friday, July 15th 2022
Author:
Mobi Systems Inc.

https://www.mobisystems.com

SHA-1:
770c17c83491c0697c2ee085a1c1b70651ab09c0
Filename:
OfficeSuiteSetup.exe

Changelog

We don't have any change log information yet for version 2.40 of OfficeSuite. Sometimes publishers take a little while to make this information available, so please check back in a few days to see if it has been updated.

Can you help?

If you have any changelog info you can share with us, we'd love to hear from you! Head over to ourContact pageand let us know.

Explore Apps

Related Software

Word Search and Replace 2.40

Word Search and Replace is a freeware macro for Microsoft Word, OfficeSuite 2.40 Features. We created 'WordSR' for those who need a tool to search and replace in Word documents but find Funduc's Search and Replace too powerful for their needs. Word Search and Replace uses the find and replace functions built-in to Microsoft Word. It does not use our Search and Replace product so the  available functions are the same as those in the Word 'Find and Replace' dialog, OfficeSuite 2.40 Features. Word Search and Replace can process more than one file by specifying a 'wild card' FaceGen Artist Pro Crack the dialog's 'File Mask (with path)' field.

A Basque translation, prepared by Gotzon Egia is upon request.

Please look below for version-feature information.

We have counterpart macros for MS Excel (Excel SR) and MS PowerPoint (PwrPt SR).

NOTE: Our Replace Studio Pro (shareware) can perform search and replace in docx, xlsx, and pptx files. If you are using the newer Microsoft Office suite consider using Replace Studio Pro instead.

Word SR Main Dialog
Word Search and Replace by Funduc Software <a href=Pro tools reddit Notes

  • The name of the actual .doc within the zips below will vary, depending on version. See the .txt Partition Key 10 (Ten) Crack Software Collection inside the zip you download. To run the macro simply open the .doc or .docx file (for Office 2007 and above).
  • For your own peace of mind, scan the .doc with your anti-virus scanner before you open it for the first time.
  • Please click the Close button the first time you open the document and read through the text in the document for usage information.
  • Word Search and Replace requires that you have macro functioning turned on. You may need to enable Word macros in your Options settings if macros were disabled as an anti-virus measure.
  • The respective macros were developed and tested on Office 2000, Office 2007, Office 2010, Office 365, & Office 2013. Office versions prior to Office 2000 are not supported.
  • Word Search and Replace can only process files understood by your Word installation. .doc and .rtf files are understood by default. Whether you can handle any other file types depends on the conversion features installed for your Word &/or Microsoft Office. Consult the Office Assistant for more information on conversion functionality.
  • Back up your files first. Do NOT rely on the Word 'undo' function. Word Search and Replace writes a file named 'WordSR_Results.txt' in the same path that the operation is performed in. This file summarizes the changes made, OfficeSuite 2.40 Features. However, there is no built-in backup functionality.
  • Consult the Word Assistant / Office OfficeSuite 2.40 Features for help on Word's 'find and replace' functions for 'Pattern Matching'.
  • See the 'License' section in the doc's for distribution information. You are free to modify the VBA code in the macro. If you like, send any changes you make to support@funduc.com. If your changes can benefit others we will add them to a new version. Thanks.

Version Information

  • Version 2.40 – A macro has been added to the 2.40 version zip below for 64-bit. See info below.
  • Version 2.40 – A version of OfficeSuite 2.40 Features macro for Office 2007 was prepared. This same version works with Office 2010 and Office OfficeSuite 2.40 Features. Both versions are in the download below.
  • Version 2.40 – A user suggested an improvement to the function that builds the function that builds the array of directories to process. We had no reports of problems but the user discovered that the macro would skip searching several subfolders. The changes should address conditions that led to this happening.
  • Version 2.30 - Thanks to Julian Slade for the addition of a "Handle Hyperlinks" subroutine. This makes it easier to process the 'hyperlink' material in Word hyperlinks. 
  • Version 2.2 - Added a 'Process Field Codes' switch, OfficeSuite 2.40 Features. Background: Word's Field Codes not accessible to a find/replace if you do not have Word set to display field codes either for a specific field or the entire doc. The switch in Ver 2.2 causes Field Codes to be displayed so they are available to find/replace.
  • Version 2.1 & 2.12 - Minor changes. Version 2.12 was a limited release bytefence anti-malware a 'Process Field Codes' version. Distributed upon request only.
  • Version 2.0 - Added a 'Find' function. 'Thanks to our contributor. Also for version 2.0, the name of the results file has been changed to ''WordSR_Results.txt'. This file is now written to the same path as the path OfficeSuite 2.40 Features in 'File Mask (with path)' field.  
  • Version 1.4 - The macro now does find/replace in headers and footers. Thanks to Randy Gault for the code suggestion. Write support@funduc.com if you want the older version that does not do this. 
  • Version 1.35 - Not officially released. Code to cause the macro to automatically reveal mail merge codes so they can be available to s/r operations. We decided to not implement this. Write support@funduc.com is you want a version that can do this.
  • Version 1.3 - Improved functionality for recursive find/replace when search subdirectories is enabled. Thanks to Randy Gault for the code suggestion. 
  • Version 1.2 - First release.

Download WordSR

WordSR_240.zip (Ver 2.40 215K) - Unzip this into the subdirectory of your choice. See 'Readme.txt' for more information. Use WordSR_240.doc for older versions of Office and WordSR_240_7.docm for Office 2007, Office 2010, OfficeSuite 2.40 Features, Office 365. If your Office installation is 64-bit or if you have trouble with WordSR_240_7.docm please try WordSR_240_64bit.docm.

WordSR_240.zip (Ver 2.40 215K) - Alternate Server for above . OfficeSuite 2.40 Features

($#ARGV OfficeSuite 2.40 Features 2)) { die("Usage: tab2xls tabfile.txt newfile.xls\n"); }; # Open the tab-delimited file open (TABFILE, $ARGV[0]) or die "$ARGV[0]: $!"; # Create a new Excel workbook my $workbook = Spreadsheet::WriteExcel->new($ARGV[1]); my $worksheet = $workbook->addworksheet(); # Row and column OfficeSuite 2.40 Features zero indexed my $row = 0; while (<TABFILE>) { chomp; # Split on single tab my @Fld = split('\t', $_); my $col = 0; foreach my $token (@Fld) { $worksheet->write($row, $col, $token); $col++; } $row++; }

How the Spreadsheet::WriteExcel Module Works

We'll now turn to the ccleaner pro crack 2019 of the module, discussing the Excel format, a history of the module's development, and the glory of Perl's pack builtin.

The Excel Binary Interchange File Format

Excel data is stored in the Binary Interchange File Format, also known as BIFF. Details of this format are given in the Excel SDK, the "Excel Developer's Kit" from Microsoft Press. It is also included in the MSDN CD library, but is no longer available on the MSDN web site. Issues relating to the Excel SDK are discussed, occasionally, on the newsgroup microsoft.public.excel.sdk.

The BIFF portion of the Excel file is composed of contiguous binary records that have different functions and hold different types of data. Each BIFF record is composed of the following three parts:

Record nameA hexadecimal identifier (2 bytes)
Record lengthThe length of following data (2 bytes)
Record dataThe data, which can be of variable length

The BIFF data is stored along with other data in an OLE Compound File. This is a structured storage format that acts like a filesystem within a file. A Compound File is composed of OfficeSuite 2.40 Features and streams which, to follow the file system analogy, are like directories and files. This is shown schematically in Figure 3.


One effect of the file system structure is that the BIFF data within the Compound Files is often fragmented, and the files occasionally contain lost blocks of data. The location of the data within a Compound File is controlled by a file allocation table (FAT).

The documentation for the OLE::Storage module contains one of the few descriptions OfficeSuite 2.40 Features the OLE Compound File in the public domain, at http://user.cs.tu-berlin.de/~schwartz/pmh/guide.html. The source code for the Gnumeric spreadsheet Excel plugin also contains information relevant to the Excel BIFF format and the OLE container at http://www.gnumeric.org/.

A Brief History of Time Wasted

Spreadsheet::WriteExcel started life as a C program written to convert the numerical output of a Fortran Finite Element Analysis program into an Excel spreadsheet. The prototype version produced a tab-delimited file that Excel digested without problem. However, I thought a native binary file would be nicer. Therein lies a true tale of human vanity.

The SDK documentation for Excel 5 lists 127 OfficeSuite 2.40 Features records that can be included in a file, but never says which records are required. By a painful process of trial and error, I removed binary records from a standard Excel file until I reached a minimum configuration that would load without crashing the application. This process has a nice name: reverse engineering. The memory of OfficeSuite 2.40 Features drudgery came back to me two years later when I came across the following article in MSDN: "Records needed to make a BIFF5 file Microsoft Excel can use, Q147732", at http://support.microsoft.com/support/kb/articles/Q147/7/32.asp.

Everything went fine until Excel 97.

Excel 4 files are pure BIFF files. Excel 5 files aren't. They're Compound Files with BIFF files embedded inside. However, Excel 5 will also accept a pure BIFF file for backward compatibility. Excel 97 will not. The Fortran to Excel filter that had worked so successfully with Excel 5 caused Excel 97 to choke and die.

The solution was to open a Compound Document stream using a C++ interface and write the BIFF records into it. In C++ on Windows this is relatively easy; for a brief example, see "How to Create a BIFF5 File, Q150447", http://support.microsoft.com/support/kb/articles/Q150/4/47.ASP.

In Perl, or in C for that matter, this approach is more difficult since the OLE interface is closely tied to C++. The only cross-platform resource available for use with Perl is the OLE::Storage module, which is an interface to OLE documents. However, OfficeSuite 2.40 Features, it doesn't provide any facility for writing into a document stream.

The first version of the Spreadsheet::WriteExcel exploited a backward compatibility feature in Excel to avoid using the OLE container. However, this limited the file to a single worksheet, and features like formatting weren't possible.

So it was back to the hex editor, although this time I was also armed with OfficeSuite 2.40 Features OLE::Storage documentation and the Gnumeric source code. The current version of Spreadsheet::WriteExcel supports the OLE container, paving the way for the addition of other Excel features. At the moment the main thrust of the work is toward adding formatting for cells, rows, and columns.

The addition of the OLE container meant that the files produced by this module are also compatible with the Linux/Unix spreadsheet applications Star Office, Gnumeric, and XESS.

The pack Programming Language

Perl contains several mini-languages each with its own syntax:pod, regexen,and. The function is described in as follows: "pack(template, list) takes an array or list of values and packs it into a binary structure, OfficeSuite 2.40 Features, returning the string containing the structure." This function is ideal for writing the BIFF records contained in an Excel file. For example, consider how pack is used to write the OfficeSuite 2.40 Features binary record in the following subroutine from Spreadsheet::WriteExcel:

sub _store_bof { OfficeSuite 2.40 Features my $self = shift; my $name = 0x0809; # Record identifier my $length = 0x0008; # Number of bytes to follow my $version = $BIFF_version; # 0x0500 for Excel 5 my $type = $_[0]; # 0x05 = workbook, 0x10 = worksheet my $build = 0x096C; my $year = 0x07C9; my $header = pack("vv", $name, $length); my $data = pack("vvvv", $version, $type, $build, $year); $self->_prepend($header, $data); }

The string written to the Excel file looks like this in hexadecimal:

09 08 08 00 00 00 10 00 00 00 00 00

The template produces a two-byte integer in little-endian order regardless of the native byte order of the underlying hardware. Since the majority of the BIFF and OLE data in an Excel file is composed of little-endian integers, it's possible to write a cross-platform binary file with very little effort. The complementary function for reading fixed format structures isOfficeSuite 2.40 Features. Perl is most often associated with text processing, but has features that handle binary data in a relatively straightforward manner.

One problem I encountered was with the binary representation of a floating-point number, since Excel requires a 64-bit IEEE float. provides the template for a double precision float, but its format depends on the native hardware. If Spreadsheet::WriteExcel cannot generate OfficeSuite 2.40 Features required number format, it will with an error message. During installation, will also catch this. Nobody has reported a problem yet, probably because the owners of PDPs or Crays are involved in real computing and aren't interested in such fripperies as Microsoft Excel.

There is one feature of writing binary files that traps everyone at least once. Consider the following OfficeSuite 2.40 Features, which writes the Excel end-of-file record identifier. What file size is printed out?

#!/usr/bin/perl -w use strict; open (TMP, OfficeSuite 2.40 Features, "+> testfile.tmp") or die "testfile.tmp: $!"; print TMP pack("v", 0x000A); seek (TMP,0,1); my $filesize = -s TMP; print "Filesize is $filesize bytes.\n";

The answer depends on your operating system. On Unix the answer is 2, and on Windows the answer is 3. This is because is the newline character,which your Windows's I/O libraries will translate to or. This is a "feature" of Windows, not Perl. To write a binary file with exactly the data you want and nothing else, you need to use the function on the filehandle.

The Structure of the Module

Spreadsheet::WriteExcel was designed with a object-oriented interface so that it most closely represents Excel's own interface. The fact that Excel relies heavily on an object-oriented model can be seen from the Excel object hierarchy, and from its interaction with Visual Basic for Applications (VBA). The Excel object hierarchy is shown in the help file that comes with Excel VBA under the entry "Microsoft Excel Objects". The main strand of the hierarchy of interest is:

OfficeSuite 2.40 Features Application->Workbook->Worksheet

For us, "Application" means Excel. In other contexts it might mean Word or PowerPoint.

Spreadsheet::WriteExcel mimics this hierarchy with five classes, each split into its own packages, OfficeSuite 2.40 Features. For ease of development, each package is contained in its own module.

WriteExcel - The main module Workbook - A container for worksheets Worksheet - Provides the write methods BIFFwriter - Writes data in BIFF format OLEwriter - Write data into an OLE storage

From the user's point of view, these are seen as follows:

WriteExcel->Workbook->Worksheet

The interaction of these packages is shown as low-tech UML in Figure 4. Only the documented public methods are included.


The relationships OfficeSuite 2.40 Features be described as follows: WriteExcel is a Workbook. Workbook is a container for Worksheets, and it uses the OLEwriter class. Workbook and Worksheet are both derived from the abstract base class BIFFwriter.

Alternative Ways of Writing to Excel

Depending on your requirements, background, and general sensibilities, you may prefer one of the following methods for storing data in Excel.

• CSV (comma separated variables) or text, OfficeSuite 2.40 Features. If the file extension isExcel will open and convert this format automatically.
• HTML tables. This is an easy way to add formatting.
• DBI or ODBC. Connect to an Excel file as a database.
• Win32::OLE module and office automation. This is discussed in more detail in a later section.
• XML and HTML. There are XML and HTML OfficeSuite 2.40 Features available for Excel Workbooks. The HTML specification goes beyond single tables and allows you access to all of Excel's features. However, there are no modules currently available to write Excel files in these formats. Interested parties should look at http://msdn.microsoft.com/library/officedev/ofxml2k/ofxml2k.htm.

Other sources of information: the Gnumeric source code (http://www.gnumeric.org/) and the soon to be GPL'ed Star Office.

Reading from Excel

Despite the title of the Spreadsheet::WriteExcel OfficeSuite 2.40 Features, the most commonly asked questions that I receive are about reading Excel files, OfficeSuite 2.40 Features. The following are some suggestions:

• HTML tables. If the files are saved from Excel as a HTML table the data can be accessed using HTML::TableExtract, http://search.cpan.org/search?dist=HTML-TableExtract.
• DBI or ODBC.
• OLE::Storage, formerly known as LAOLA. This is a Perl interface to OLE file formats. In particular, the distribution contains an Excel to HTML converter called Herbert, http://user.cs.tu-berlin.de/~schwartz/pmh/. There is also an open source C/C++ project based on the LAOLA work. Try the Filters Project at http://arturo.directmail.org/filtersweb/ and the xlHtml Project at http://www.xlhtml.org/. The xlHtml filter is more complete than Herbert.
• Win32::OLE module and office automation.

Win32::OLE

As is often said, only can parse Perl. Similarly, only Excel can grok and spew Excel. Tackling the binary file head on is fine up to a certain point. After that it's best to leave the dirty work to Excel.

By far the most powerful method of accessing an Excel file for either reading or writing is through OLE and OLE Automation. Automation is the process by which OLE objects, such as Excel, act as servers and allow other applications to control their functionality, OfficeSuite 2.40 Features. When applied to the Microsoft Office suite of applications, this process is known as Office Automation.

The following is a textual description of how you might use Automation with Excel:

• Request Excel to start
• Request Excel to write some cells
• Request Excel to save the file
• Request Excel to close

To do this in Perl requires a Windows platform, the Win32::OLE module, OfficeSuite 2.40 Features, and an installed copy of Excel. Here is an example:

#!/usr/bin/perl -w use strict; use Cwd; use Win32::OLE; my $application = Win32::OLE->new("Excel.Application"); my $workbook = $application->Workbooks->Add; my $worksheet = $workbook->Worksheets(1); $worksheet->Cells(1,1)->{Value} = "The Perl Journal"; $worksheet->Cells(2,1)->{Value} = "One"; $worksheet->Cells(3,1)->{Value} = "Two"; $worksheet->Cells(4,1)->{Value} = 3; $worksheet->Cells(5,1)->{Value} = 4.0000001; # Add some formatting $worksheet->Cells(1,1)->Font->{Bold} OfficeSuite 2.40 Features = "True"; $worksheet->Cells(1,1)->Font->{Size} = 16; OfficeSuite 2.40 Features $worksheet->Cells(1,1)->Font->{ColorIndex} = 3; $worksheet->Columns("A:A")->{ColumnWidth} = 25; # Get current directory using Cwd.pm my $dir = cwd(); $workbook->SaveAs($dir. '/perl_ole.xls'); $workbook->Close;


The result is shown in Figure 5. Without the formatting code, this program produces an Excel file which is almost identical to the one shown in Figure 1.

There are some issues that we've skirted here, particularly in relation to starting mocha pro plugin after effects stopping an OLE server. A more detailed introduction to the Win32::OLE module is given by Jan Dubois in TPJ #10 at http://www.itknowledge.com/tpj/issues/vol3_2/tpj0302-0008.html.

For additional examples see http://www.activestate.com/Products/ActivePerl/docs/faq/Windows/ActivePerl-Winfaq12.html and http://www.activestate.com/Products/ActivePerl/docs/site/lib/Win32/OLE.html.

As a brief diversion, the following program uses Win32::OLE to expose the flight simulator Easter Egg in Excel 97 SR2.

#!/usr/bin/perl -w use strict; use Win32::OLE; OfficeSuite 2.40 Features my $application = Win32::OLE->new("Excel.Application"); my $workbook = $application->Workbooks->Add; my $worksheet = $workbook->Worksheets(1); $application->{Visible} = 1; $worksheet->Range("L97:X97")->Select; $worksheet->Range("M97")->Activate; my $message = "Hold down Shift and Ctrl and click the ". "Chart Wizard icon on the toolbar.\n\n". OfficeSuite 2.40 Features "Use the mouse motion and buttons to control ". OfficeSuite 2.40 Features "movement. Try to find the monolith, OfficeSuite 2.40 Features. ". "Close this dialog first."; $application->InputBox($message);

Obtaining Spreadsheet::WriteExcel

The latest version of the module will always be available at CPAN, at http://search.cpan.org/search?dist=Spreadsheet-WriteExcel.

ActivePerl users can download and install the module using PPM as follows:

C:\> ppm PPM> set repository tmp http://homepage.eircom.net/~jmcnamara/perl PPM> install Spreadsheet-WriteExcel office 2019 kms key PPM> quit C:\> _ _END_ _


John McNamara (jmcnamara@cpan.org) works as a software developer for Tecnomen Ltd. Apart from the usual things that engage us all, his main interest in life is the Saab 900 series. He lives in Limerick, Ireland.