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
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
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
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 name | A hexadecimal identifier (2 bytes) |
Record length | The length of following data (2 bytes) |
Record data | The 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 00The 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->WorksheetFor 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 storageFrom the user's point of view, these are seen as follows:
WriteExcel->Workbook->WorksheetThe 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.
0 Comments