Excel Spreadsheets from RPG With Apache's POI / HSSF
|
|
|
- Curtis Baldwin
- 10 years ago
- Views:
Transcription
1 Excel Spreadsheets from RPG With Apache's POI / HSSF Presented by Scott Klement , Scott Klement There are 10 types of people in the world. Those who understand binary, and those who don t. Objectives Of This Session Learn when it makes sense to create spreadsheets with POI / HSSF. Learn how to create spreadsheets Learn how to modify existing spreadsheets Oh, yeah and provide lots of links to articles on the subject! 2
2 What is POI / HSSF? POI is a set of Java routines to work with (create, read, modify) Microsoft Office documents. Open source (free) software. Still in development. Created by the Jakarta Project, a project aimed at creating open source Java utilities. Jakarta has created many many utilities, including some that are very well known, such as Ant and Tomcat. HSSF is the component of POI that reads & writes Excel spreadsheets, it's not complete, but enough of it is available to do some really useful stuff. XSSF was added in 2009 to provide support for newer XML Excel format HWPF is the component that works with Microsoft Word. However, not enough of HWPF has been completed to make it useful. HSLF is the component that works with Microsoft Powerpoint files. Not enough of this one has been completed to make it useful. 3 Whaddya Mean, Java?! I thought this presentation was about RPG? Yes, this presentation is about RPG HSSF/XSSF can be used from an RPG program! Starting in V5R1, prototypes in RPG are able to call Java methods directly. Java methods are callable routines, very much like RPG subprocedures. That means that once you download and install POI, you can use the POI routines directly from an RPG program! Of course, that also means: Have a basic understanding of how to use Java objects. Write prototypes and named constants that correctly access the APIs provided by XSSF/HSSF. But, I've done much of that for you, already! 4
3 Is This the Right Tool for Me? There are many other ways to create Excel spreadsheets: CSV/TAB (CPYTOIMPF) = Easy, but has no formatting at all. HTML table = Works, but has no capacity for formulas. Mapping browser functions to Excel can look weird. XML = simple XML format only works with new Excel, has release compatibility problems, can be complex to code, especially with embedded pictures. OOXML = (several XML docs embedded in a ZIP file, aka XLSX format) is supported by POI, but would be extremely complex to build yourself. SYLK = Outdated, obscure. BIFF (XLS format) = The one used by HSSF, and old Client Access file transfer. Excel's native & primary format up until Excel 2003 (but still works great in Excel 2007) 5 POI is Great For Reports POI works very nicely when you want to output an attractive report (instead of writing a spooled file or a PDF document.) Formulas are available, and that helps users interact with your report. Problem with POI is performance. It's slow. Works great for small reports, where bad performance isn't noticed. Or with long-running batch jobs, where the time it takes doesn't matter much. 6
4 A Little Java & OO Background You don t need to understand the Java programming language to use HSSF, but it helps to understand a few of the concepts. I ll cover some of the basics here. What is a class? What is an object? How do you create an object? How can one object create another? What is the CLASSPATH? What is a JAR file? How does RPG support Java? 7 What is Object-Oriented? Object-oriented languages are based on the concept of an object. The concept of an object comes from the real-world model of an object. If I were at home, I'd see many objects. My chair, my television, my computer, etc. Objects always have a "current state" and "behaviors". Lets use dogs as an example. A dog has a current state: Hair is brown. Breed is collie. Location is kitchen. And behaviors Dogs can bark Dogs can run Note that behaviors can change the current state! (Running may change the location, for instance.) Software objects are conceptually the same the state is stored in "fields" (variables), and the behavior is carried out by calling a "method" (routine). 8
5 Classes (1 of 2) Blueprint for an object. (e.g., a dog) There are many dogs in the world, but they all fall into the same basic "class", (or "category") -- that of a dog. (Kinda like a record format?) Once you know the class, it can be used to create the individual dogs. Import java.lang; Public class Dog { String color; String breed; int sex; // 0=male, 1=female String location; public Dog(String c, String b, String p, int s) { color = c; breed = b; location = p; sex = s; } public void bark() { // insert code to make // barking noises } 9 Classes (2 of 2) Fields, are variables that represent the current state of the object. You can think of these in the same way you think of fields in a data structure in RPG, or fields in a database record. Code continued from last slide public void eat(dogfood food) { // code to eat an object of // the DogFood class goes here } Methods, are like subprocedures (subroutines w/parameters) in RPG. They're little pieces of code that carry out a behavior. Constructors are special methods that are called when an object is created. Sort of like *INZSR in RPG. (Except, they can receive parameters.) } public void comerunning(string l) { location = l; } public Dog havepuppy(dog father){ // code to mix attributes // of mother and father go // here. } 10
6 Objects (1 of 2) An object is an instance of a class. A class can t really be used by itself, instead it must be used to create an object. To create an object in Java, you use the "new" keyword. That creates a new object ("a dog") from a class ("blueprint for a dog"). You can pass parameters to the constructor when you create an object. Dog mack = new Dog("brown","collie", "kitchen", 0); Dog lady = new Dog("white", "mutt", "living room", 1); Now that you have an object, you can access it's fields and call it's methods: if ( mack.location == "kitchen" ) { DogFood df = new DogFood("alpo", "beef"); mack.eat(df); } 11 Objects (2 of 2) Sometimes, instead of a constructor, you create an object by calling a method that's in a different object. This is typically done when there's a close relationship between the objects. if ( lady.sex!= mack.sex ) { lady.bark(); mack.comerunning(lady.location); Dog rover = lady.havepuppy(mack); } In this example, the "rover" object might be created by taking some of the attributes from the lady object and some of the attributes of the mack object, so that you don't have to specify them all in a call to the constructor. Note that we call the methods directly in the objects themselves, not in the class! 12
7 RPG's Support for Java RPG supports calling Java methods. (Starting in V5R1) RPG does not have direct support for accessing fields in a Java object or class. You have to call a Java method that returns the field, or call an API to retrieve the field. (But most Java classes do not make fields available, anyway, as it's considered a bad practice.) Documented by IBM in the ILE RPG Programmer's Guide Chapter 11 "RPG and the e-business World" Features added to support Java method calls are: O data type in the D-spec. CLASS(*JAVA : 'class-name') D-spec keyword (used with O data type) EXTPROC(*JAVA : 'class-name' : 'method-name') on prototypes. Special value of *CONSTRUCTOR for 'method-name', above. 13 Example Constructor Prototype For example, to create a Java String object (which is how Java stores alphanumeric data), you'd have to create a prototype that calls the constructor for the java.lang.string class: D new_string pr O Class(*Java:'java.lang.String') D ExtProc(*Java D :'java.lang.string' D :*CONSTRUCTOR) D value 32767A varying This prototype: Returns a Java object. That object is to be an instance of the 'java.lang.string' class Java class names are case-sensitive. (string, String and string are different) It creates an object (calls the *constructor). Passes a variable-length string as a parameter to the constructor. 14
8 Example Constructor Call To create a string, you call the prototype (shown on last screen) You need a "type O" field to receive the result. Simply declaring the type O field does not create a string only a placeholder for one. The call to the *CONSTRUCTOR prototype is what actually creates the string. D breed s O Class(*Java:'java.lang.String') breed = new_string('collie'); Tip: Typing CLASS(*JAVA:'java.lang.String') repeatedly can be very tiring. (Same goes for any Java class name!) Here's an easier way: D jstring s O Class(*Java:'java.lang.String')... D color s like(jstring) D breed s like(jstring) D place s like(jstring) 15 LIKE on Prototypes LIKE can also be used on prototypes: D Dog s O class(*java:'dog') D new_dog pr like(dog) D ExtProc(*Java:'Dog':*CONSTRUCTOR) D color like(jstring) D breed like(jstring) D place like(jstring) D sex 10i 0 value D mack s like(dog) D color s like(jstring) D breed s like(jstring) D place s like(jstring) /free color = new_string('brown'); breed = new_string('collie'); place = new_string('kitchen'); mack = new_dog(color: breed: place: 0); 16
9 Obtaining JARs for POI Go to the Apache web site for POI: Click the "download" link. Use the mirror they suggest. Click Release / Bin. All my code has been tested with poi-bin zip (Though, older versions exist for POI 3.1 and earlier!) Extract the JAR files to a directory in your IFS. (example: /poi ) Add the JAR files to your CLASSPATH variable: ADDENVVAR ENVVAR(CLASSPATH) VALUE('...IFS pathnames for JAR files...') Must be done before JVM is started / used in job. Must be re-done each time you sign on (unless you set it at the system-level.) 17 Obtaining HSSFR4 Service Program As part of a series of articles that I wrote for the System inetwork Programming Tips newsletter, I've written a lot of prototypes, constants, and helper subprocedures (in RPG) for working with POI. The most up-to-date and well tested copy of my HSSF code can be found and downloaded from my we site: This site contains the downloads for HSSFR4 for POI versions (without XLSX support) and 3.6 (with XLSX support) It also contains links to all of the articles I've written about POI -- some of which have older versions of the code. But please use the code from my site, as it's the latest version with the latest bug fixes. 18
10 You Also Need Anytime you use Java from RPG on IBM i, you need the following licensed programs: 57xx-SS1, opt 13 System Openness Includes (library QSYSINC) 57xx-JV1, *BASE Developer Kit for Java 57xx-JV1, opt 7 Java Developer Kit 5.0 *** 57xx-WDS ILE RPG compiler *** JDK 5.0 is the minimum version for POI 3.6. Version 1.4 worked fine for older versions. Each version has a different '5722-JV1, opt' number. All of these licensed programs are shipped on the CDs with IBM i. The only one that's an extra charge is the ILE RPG compiler, and you already own that (most likely.) 19 Extra Java Components To run version 3.6 with support for the XLSX file formats, you also need to install: POI 3.6 (free from Apache) DOM4J (free from Apache) XmlBeans (free from Apache) These are not required for traditional XLS support. They are only needed for the newer XLSX support. For detailed information on installing these, and how to set up environments to allow both version 3.1 and 3.6 on the same system, please see the following article: 20
11 Creating a Spreadsheet (finally!) Workbook (the whole thing) Cells (rows and columns) Sheet Name 21 Code to Create Empty Book/Sheet The following code creates a blank Excel document in your System i computer's memory: /copy hssf_h D Str s like(jstring) D Sheet s like(sssheet) D book s like(ssworkbook) /free book = new_hssfworkbook(); // or new_xssfworkbook() for xlsx Str = new_string('sheet One'); Sheet = SSWorkbook_createSheet(Book: Str); Prototypes and object types are defined in the HSSF_H copybook. The SSWorkbook object represents the "Excel document" as a whole. Call new_hssfworkbook() to create traditional XLS format Or call new_xssfworkbook() to create newer XLSX format. The SSSheet object represents a single sheet ("tab") in the Excel document. As soon as you use any Java call (including the new_hssfworkbook call) the JVM will be loaded. You must set CLASSPATH before that. 22
12 Simplifying Strings Each time you want to pass a character string to a Java object, you have to first create a String object with the character string inside it, then pass that. I find that to be cumbersome, so I put subprocedures in HSSFR4 that do that for me. P ss_newsheet B EXPORT D ss_newsheet PI like(sssheet) D Book like(ssworkbook) D Name 1024A const varying D Str s like(jstring) D Sheet s like(sssheet) /free Str = new_string(name); Sheet = SSWorkbook_createSheet(Book: Str); SS_freeLocalRef(Str); return Sheet; /end-free P E Now I can simply do this: Sheet = SS_newSheet(book: 'Sheet One'); 23 Adding Rows and Cells (1 of 2) D row s like(ssrow) D cell s like(sscell) Row = SSSheet_createRow(Sheet: 0); Cell = SSRow_createCell(Row: 0); Str = new_string('hello World'); SSCell_setCellValueStr(Cell: Str); Cell = SSRow_createCell(Row: 1); SSCell_SetCellValueD(Cell: ); SS_save(book: '/tmp/xlpres1.xls'); *inlr = *on; SSSheet_createRow() asks the sheet object to create a new row. POI numbers rows starting with 0 Row numbers are always one less than those in Excel SSRow_createCell() creates a new cell in the given row. POI numbers columns (cells) starting with 0. so 0=A, 1=B, 2=C, 3=D, etc. 24
13 Adding Rows and Cells (2 of 2) SSCell_setCellValueStr() sets the value of a cell to a character string. SSRow_setCellValueD() sets the value of a cell to a numeric value. D stands for "Double-Precision Floating Point" SS_save() is an RPG subprocedure in HSSFR4 that saves the entire workbook (and all objects inside it) to an Excel spreadsheet in the IFS. Note that: First column isn't large enough to fit "Hello World" Second column dropped trailing zeroes. 25 Column Widths The Sheet object has a method named setcolumnwidth that you can use to control the width of each column. The widths are in 1/256th of the size of the average character. book = new_hssfworkbook(); // or new_xssfworkbook(); Sheet = SS_newSheet(book: 'Sheet One'); SSSheet_setColumnWidth( sheet: 0: 15 * 256 ); SSSheet_setColumnWidth( sheet: 1: 10 * 256 ); The preceding code sets the width Column A to 15 chars wide Column B to 10 chars wide Since I'm using a proportional font, the above numbers are only approximate, so pick something sufficiently large. 26
14 Cell Styles (1 of 2) A cell style is an object that contains information about how to format a cell.it has info about: Font, Font Size, Color, Boldness, Italics, Underlines, Numeric Format, Currency, Alignment (Alignment can be Left, Right or Centered) and many other attributes as well you can find details in the articles listed at the end of this presentation. D Numeric s like(sscellstyle) D DataFmt s like(ssdataformat) D NumFmt s 5I 0... Numeric = SSWorkbook_createCellStyle(book); DataFmt = SSWorkbook_createDataFormat(book); Str = new_string('#,##0.00'); NumFmt = SSDataFormat_getFormat(DataFmt: Str); SSCellStyle_setDataFormat(Numeric: NumFmt); SSCellStyle_setAlignment(Numeric: ALIGN_RIGHT); Cell styles are stored in an array inside the SSWorkbook object. Think of this array as a closet full of clothes that your cells can wear to change the way they look! 27 Cell Styles (2 of 2) Once you have your cell styles created in the workbook, you can apply them to individual cells to "dress them up." Cell = SSRow_createCell(Row: 1); SSCell_SetCellValueD(Cell: ); SSCell_setCellStyle(Cell: Numeric); You can apply the same cell style (without re-creating it) to as many cells as you like. What I've shown you with cell styles is just the tip of the iceberg! You can perform any type of formatting imaginable. 28
15 Simplified Cell Creation As you can see, for each cell you want to create, you have to createcell, new_string (sometimes), setcellvalue, setcellstyle. freelocalref (more later). Too cumbersome! I created shortcuts: ss_text(), ss_num(), ss_date(), ss_formula(). ss_xxxx( row-obj : col-no : cell-value : cell-style ); rowno = -1; read ITEMLIST; dow not %eof(itemlist); rowno = rowno + 1; Row = SSSheet_createRow(Sheet: rowno); ss_text( Row: 0: Item_sku : Normal ); ss_text( Row: 1: Item_Desc : Normal ); ss_num ( Row: 2: Price : Numeric ); ss_num ( Row: 3: StockQty : Numeric ); ss_date( Row: 4: LastBought: UsaDate ); read ITEMLIST; enddo; Each procedure takes Row object Cell column number Value Cell Style Value will be: ss_text = RPG alpha field ss_num = number field ss_date = date field. ss_formula = RPG alpha field containing an Excel formula. (next slide ) 29 Inserting a Formula ss_formula( row-obj : col-no : formula-text : cell-style ); My shortcut routine ss_formula() lets you insert a formula into an Excel spreadsheet. But cells must be specified in Excel's notation, such as A3 or B29. You do not put an equal sign in front of a formula, like you would in Excel. I created a utility routine to calculate Excel's cell name: excel-cell-name = ss_cellname( hssf-row-no : hssf-col-no );... this would follow the code from the last slide... start = SS_cellName( 0: 3); // Get cell name (D1) end = SS_cellname(rowno: 3); // Get cell name (Dx) rowno = rowno + 2; Row = SSSheet_createRow(Sheet: rowno); ss_formula(row: 3: 'SUM('+start+':'+end+')': Numeric ); 30
16 Garbage Collection All of the Java objects that make up the spreadsheet are loaded into the computers memory. They are not automatically removed from memory. Not when workbook is saved. Not when program ends (even with LR on) Not when you run RCLRSC Not even when the activation group ends! The JVM knows when Java is done with objects, so for Java they're automatically "garbage collected" (cleaned up when nothing still uses the object.) The JVM does not know when RPG is done with them, because JVM's are designed to understand how RPG works! (They are part of the Java language.) You have to tell the JVM when you're done with each object by calling an API. 31 ss_freelocalref The ILE RPG Programmer's Guide has sample code that most people use to notify the JVM when their RPG programs are done with objects. I have made my own versions, based on IBM's sample code, that are included in HSSFR4 along with the other utilities. You can call them from your programs to clean up your objects. ss_freelocalref(object-name) is one way to tell the JVM you're done with an object. It frees up one object at a time. D Str s like(jstring) Str = new_string('hello World'); SSCell_setCellValueStr(Cell: Str); ss_freelocalref(str); // done with Str 32
17 Freeing Objects in Groups The other way to free objects is to create an object group. The following code creates an object group with space for objects: ss_begin_object_group(10000); From this point, every object created (including those created inside the Java routines that you call) will be placed inside the group. Think of the group as a cardboard box. Every object you create will exist inside that box. When you want to free them up, you simply discard the whole box. ss_end_object_group(); You can create sub-groups inside other groups as well. Tip: Always start a group when your program starts, and end it when the program ends, and you'll never have extra Java objects trapped in memory. 33 Object Group Example ss_begin_object_group(10000); Row = SSSheet_createRow(Sheet: 0); Cell = SSRow_createCell(Row: 0); Cell = SSRow_createCell(Row: 1); SSCell_SetCellValueD(Cell: );... Lots of other code can be here... ss_end_object_group(); All objects after the "begin" are cleaned up when the "end" is called. 34
18 Reading a Spreadsheet There are two ways of reading a spreadsheet. 1. Event API. HSSF parses the entire workbook. Each time a cell with a value is found, it's considered an "event". HSSF calls RPG subprocedures (that you write) with each cell value found. Runs fast, very simple to code, but does not allow updates. Requires my XLPARSE service program & Java classes from 2. User Model API You load workbook into Java objects in memory. You call routines like getsheet(), getrow() and getcell() to read each cell individually The workbook is loaded into memory just like the ones you create, so you can also use the createsheet(), createrow(), setcellvalue(), etc. to change existing values or add new ones to existing sheet. Runs slower, requires more work to code, but is more versatile. 35 Event API Tell HSSF the spreadsheet to parse, and which subprocedures to call for numeric cells and character cells. callp xlparse_workbook('/usr/reports/inventorylist.xls' : %paddr( NumericCell ) : %paddr( CharCell ) ); you write the subprocedures that HSSF calls for each cell as follows P CharCell B D CharCell PI 1N D Sheet 1024A varying D const D Row 10I 0 value D Column 5I 0 value D Value 32767A varying D const /free if (row>=0 and row<=22); select; when col = 0; sku = value; when col = 1; desc = value;... etc... P NumericCell B D NumericCell PI 1N D Sheet 1024A varying D const D Row 10I 0 value D Column 5I 0 value D Value 8F value /free if (row>=0 and row<=22); select; when col = 2; eval(h) price = value; when col = 3; eval(h) qty = value;... etc... 36
19 User Model API SS_open() loads an existing sheet into memory. You can now get the Java objects from it and read their values, change them, whatever you like D book s like(ssworkbook) D sheet s like(sssheet) D row s like(ssrow) D cell s like(sscell) book = ss_open('/usr/reports/inventorylist.xls'); sheet = ss_getsheet(book: 'Sheet One'); row = SSSheet_getRow(sheet: 7); cell = SSRow_GetCell(row: 2); type = SSCell_getCellType(cell); StrVal = 'Cell C8 = '; select; when type = CELL_TYPE_STRING; StrVal += String_getBytes(SSCell_getStringCellValue(cell)); when type = CELL_TYPE_FORMULA; StrVal += String_getBytes(SSCell_getCellFormula(cell)); when type = CELL_TYPE_NUMERIC; NumVal = SSCell_getNumericCellValue(cell); StrVal += %char(%dech(numval:15:2)); endsl; dsply StrVal; 37 More Information Apache's main Web site for POI: Downloads. Javadocs ("reference manual" style documentation for all POI routines) Click HSSF for HSSF tutorials (intended for Java programmers) IBM's (Websphere Development Studio) ILE RPG Programmer's Guide (part of Information Center) See "Chapter 11: RPG and the e-business World" 38
20 Scott's HSSF Articles Scott has written 18 articles about HSSF from RPG A few introductory articles explain the basics. Many very small articles demonstrate one particular feature. (e.g. How to change the paper orientation, how to reference another Excel document, how to enable word wrapping, etc). List of all articles is available on Scott's web site: 39 This Presentation You can download a PDF copy of this presentation from: Thank you! 40
Accesssing External Databases From ILE RPG (with help from Java)
Accesssing External Databases From ILE RPG (with help from Java) Presented by Scott Klement http://www.scottklement.com 2008-2015, Scott Klement There are 10 types of people in the world. Those who understand
MS Excel. Handout: Level 2. elearning Department. Copyright 2016 CMS e-learning Department. All Rights Reserved. Page 1 of 11
MS Excel Handout: Level 2 elearning Department 2016 Page 1 of 11 Contents Excel Environment:... 3 To create a new blank workbook:...3 To insert text:...4 Cell addresses:...4 To save the workbook:... 5
Introduction to Web services for RPG developers
Introduction to Web services for RPG developers Claus Weiss [email protected] TUG meeting March 2011 1 Acknowledgement In parts of this presentation I am using work published by: Linda Cole, IBM Canada
Explore commands on the ribbon Each ribbon tab has groups, and each group has a set of related commands.
Quick Start Guide Microsoft Excel 2013 looks different from previous versions, so we created this guide to help you minimize the learning curve. Add commands to the Quick Access Toolbar Keep favorite commands
Tutorial Microsoft Office Excel 2003
Tutorial Microsoft Office Excel 2003 Introduction: Microsoft Excel is the most widespread program for creating spreadsheets on the market today. Spreadsheets allow you to organize information in rows and
RPG Chart Engine. Exploit the power of open source java from RPG. Krengel Technology Inc. Leverage Java from your RPG to save time and money!
Exploit the power of open source java from RPG Leverage Java from your RPG to save time and money! RPG Chart Engine Copyright Aaron Bartell 2011 by Aaron Bartell Krengel Technology Inc. [email protected]
1. To start Installation: To install the reporting tool, copy the entire contents of the zip file to a directory of your choice. Run the exe.
CourseWebs Reporting Tool Desktop Application Instructions The CourseWebs Reporting tool is a desktop application that lets a system administrator modify existing reports and create new ones. Changes to
Aspose.Cells Product Family
time and effort by using our efficient and robust components instead of developing your own. lets you open, create, save and convert files from within your application without Microsoft Excel, confident
OpenOffice.org Writer
OOoRegiCon North America Technical Writing using OpenOffice.org Writer Jean Hollis Weber Jean Hollis Weber Community Volunteer - Slide 1 Why OOo for Techwriting? Combines best features of MS Word and FrameMaker
Microsoft Excel Tips & Tricks
Microsoft Excel Tips & Tricks Collaborative Programs Research & Evaluation TABLE OF CONTENTS Introduction page 2 Useful Functions page 2 Getting Started with Formulas page 2 Nested Formulas page 3 Copying
WEBFOCUS QUICK DATA FOR EXCEL
WEBFOCUS QUICK DATA FOR EXCEL BRIAN CARTER INFORMATION BUILDERS SUMMIT 2008 USERS CONFERENCE JUNE 2008 Presentation Abstract: Even with the growing popularity and evolvement of Business Intelligence products
Basic Excel Handbook
2 5 2 7 1 1 0 4 3 9 8 1 Basic Excel Handbook Version 3.6 May 6, 2008 Contents Contents... 1 Part I: Background Information...3 About This Handbook... 4 Excel Terminology... 5 Excel Terminology (cont.)...
SPSS for Windows importing and exporting data
Guide 86 Version 3.0 SPSS for Windows importing and exporting data This document outlines the procedures to follow if you want to transfer data from a Windows application like Word 2002 (Office XP), Excel
How to Create a Spreadsheet With Updating Stock Prices Version 3, February 2015
How to Create a Spreadsheet With Updating Stock Prices Version 3, February 2015 by Fred Brack In December 2014, Microsoft made changes to their online portfolio management services, changes widely derided
10 Java API, Exceptions, and Collections
10 Java API, Exceptions, and Collections Activities 1. Familiarize yourself with the Java Application Programmers Interface (API) documentation. 2. Learn the basics of writing comments in Javadoc style.
Sample Table. Columns. Column 1 Column 2 Column 3 Row 1 Cell 1 Cell 2 Cell 3 Row 2 Cell 4 Cell 5 Cell 6 Row 3 Cell 7 Cell 8 Cell 9.
Working with Tables in Microsoft Word The purpose of this document is to lead you through the steps of creating, editing and deleting tables and parts of tables. This document follows a tutorial format
Chapter 14: Links. Types of Links. 1 Chapter 14: Links
1 Unlike a word processor, the pages that you create for a website do not really have any order. You can create as many pages as you like, in any order that you like. The way your website is arranged and
What is a database? The parts of an Access database
What is a database? Any database is a tool to organize and store pieces of information. A Rolodex is a database. So is a phone book. The main goals of a database designer are to: 1. Make sure the data
Introduction Course in SPSS - Evening 1
ETH Zürich Seminar für Statistik Introduction Course in SPSS - Evening 1 Seminar für Statistik, ETH Zürich All data used during the course can be downloaded from the following ftp server: ftp://stat.ethz.ch/u/sfs/spsskurs/
Participant Guide RP301: Ad Hoc Business Intelligence Reporting
RP301: Ad Hoc Business Intelligence Reporting State of Kansas As of April 28, 2010 Final TABLE OF CONTENTS Course Overview... 4 Course Objectives... 4 Agenda... 4 Lesson 1: Reviewing the Data Warehouse...
Overview of sharing and collaborating on Excel data
Overview of sharing and collaborating on Excel data There are many ways to share, analyze, and communicate business information and data in Microsoft Excel. The way that you choose to share data depends
STC: Descriptive Statistics in Excel 2013. Running Descriptive and Correlational Analysis in Excel 2013
Running Descriptive and Correlational Analysis in Excel 2013 Tips for coding a survey Use short phrases for your data table headers to keep your worksheet neat, you can always edit the labels in tables
Google Docs Basics Website: http://etc.usf.edu/te/
Website: http://etc.usf.edu/te/ Google Docs is a free web-based office suite that allows you to store documents online so you can access them from any computer with an internet connection. With Google
Microsoft Excel 2010. Understanding the Basics
Microsoft Excel 2010 Understanding the Basics Table of Contents Opening Excel 2010 2 Components of Excel 2 The Ribbon 3 o Contextual Tabs 3 o Dialog Box Launcher 4 o Quick Access Toolbar 4 Key Tips 5 The
JAVA WEB START OVERVIEW
JAVA WEB START OVERVIEW White Paper May 2005 Sun Microsystems, Inc. Table of Contents Table of Contents 1 Introduction................................................................. 1 2 A Java Web Start
Version 1.0.0 USER GUIDE
Magento Extension Grid Manager Version 1.0.0 USER GUIDE Last update: Aug 13 th, 2013 DragonFroot.com Grid Manager v1-0 Content 1. Introduction 2. Installation 3. Configuration 4. Troubleshooting 5. Contact
Intro to Excel spreadsheets
Intro to Excel spreadsheets What are the objectives of this document? The objectives of document are: 1. Familiarize you with what a spreadsheet is, how it works, and what its capabilities are; 2. Using
Quick and Easy Solutions With Free Java Libraries Part II
A Quick and Easy Solutions With Free Java Libraries Part II By Shaun Haney s mentioned in Part I of "Quick and Easy Solutions With Free Java Libraries," BBj allows developers to integrate Java objects
MagnetMail Training Guide
MagnetMail Training Guide Upload E-mail Addresses to a Group Overview Each month Steven Schlossman at the National Office sends Chapter Administrators a Chapter Export report. The report includes the e-mail
Mastering the JangoMail EditLive HTML Editor
JangoMail Tutorial Mastering the JangoMail EditLive HTML Editor With JangoMail, you have the option to use our built-in WYSIWYG HTML Editors to compose and send your message. Note: Please disable any pop
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Talend Component: tjasperreportexec
Talend Component: tjasperreportexec Purpose This component creates (compile + fill + export) reports based on Jasper Report designs (jrxml files). Making reports in the ETL system provides multiple advantages:
Microsoft Access 2007 Introduction
Microsoft Access 2007 Introduction Access is the database management system in Microsoft Office. A database is an organized collection of facts about a particular subject. Examples of databases are an
Consuming Web Services from RPG using HTTPAPI. Presented by. Scott Klement. http://www.scottklement.com. 2004-2009, Scott Klement
Consuming Web Services from RPG using HTTPAPI Presented by Scott Klement http://www.scottklement.com 2004-2009, Scott Klement There are 10 types of people in the world. Those who understand binary, and
Technology Foundations. Conan C. Albrecht, Ph.D.
Technology Foundations Conan C. Albrecht, Ph.D. Overview 9. Human Analysis Reports 8. Create Reports 6. Import Data 7. Primary Analysis Data Warehouse 5. Transfer Data as CSV, TSV, or XML 1. Extract Data
Coding HTML Email: Tips, Tricks and Best Practices
Before you begin reading PRINT the report out on paper. I assure you that you ll receive much more benefit from studying over the information, rather than simply browsing through it on your computer screen.
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix ABSTRACT INTRODUCTION Data Access
Release 2.1 of SAS Add-In for Microsoft Office Bringing Microsoft PowerPoint into the Mix Jennifer Clegg, SAS Institute Inc., Cary, NC Eric Hill, SAS Institute Inc., Cary, NC ABSTRACT Release 2.1 of SAS
Use Mail Merge to create a form letter
Use Mail Merge to create a form letter Suppose that you want to send a form letter to 1,000 different contacts. With the Mail Merge Manager, you can write one form letter, and then have Word merge each
Working with JSON in RPG. (YAJL Open Source JSON Tool)
Working with JSON in RPG (YAJL Open Source JSON Tool) Presented by Scott Klement http://www.scottklement.com 2014-2016, Scott Klement "A computer once beat me at chess, but it was no match for me at kick
EXCEL XML SPREADSHEET TUTORIAL
EXCEL XML SPREADSHEET TUTORIAL In this document we are going to work with our Excel XML spreadsheet that we used in Video 1. You have now identified your shoe products and have one image of each of these
Using Microsoft Access Databases
Using Microsoft Access Databases Print this document to use as a reference while you work through this course. Open Access, and follow all directions to familiarize yourself with the program. Database
Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences. Mike Dempsey
Teradata SQL Assistant Version 13.0 (.Net) Enhancements and Differences by Mike Dempsey Overview SQL Assistant 13.0 is an entirely new application that has been re-designed from the ground up. It has been
Creating Personal Web Sites Using SharePoint Designer 2007
Creating Personal Web Sites Using SharePoint Designer 2007 Faculty Workshop May 12 th & 13 th, 2009 Overview Create Pictures Home Page: INDEX.htm Other Pages Links from Home Page to Other Pages Prepare
Introduction to IBM SPSS Statistics
CONTENTS Arizona State University College of Health Solutions College of Nursing and Health Innovation Introduction to IBM SPSS Statistics Edward A. Greenberg, PhD Director, Data Lab PAGE About This Document
Using Crystal Reports with VFP
Using Crystal Reports with VFP Introduction to Crystal Reports One of the most important aspects of Visual FoxPro applications is reporting. Whether we provide canned reports or allow the user to design
OX Spreadsheet Product Guide
OX Spreadsheet Product Guide Open-Xchange February 2014 2014 Copyright Open-Xchange Inc. OX Spreadsheet Product Guide This document is the intellectual property of Open-Xchange Inc. The document may be
Programming in Access VBA
PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010
Advanced Excel 10/20/2011 1
Advanced Excel Data Validation Excel has a feature called Data Validation, which will allow you to control what kind of information is typed into cells. 1. Select the cell(s) you wish to control. 2. Click
What Perl Programmers Should Know About Java
Beth Linker, [email protected] Abstract The Java platform is by no means a replacement for Perl, but it can be a useful complement. Even if you do not need to or want to use Java, you should know a bit
Indiana County Assessor Association Excel Excellence
Indiana County Assessor Association Excel Excellence Basic Excel Data Analysis Division August 2012 1 Agenda Lesson 1: The Benefits of Excel Lesson 2: The Basics of Excel Lesson 3: Hands On Exercises Lesson
DATAVIZ, INC. User Manual for Android 2/10/2014
DATAVIZ, INC. Documents To Go User Manual for Android 2/10/2014 Contents Documents To Go for Android... 4 Introduction... 4 Installation and Activation... 5 Installing Documents To Go for Android... 5
Rochester Institute of Technology. Oracle Training: Advanced Financial Application Training
Rochester Institute of Technology Oracle Training: Advanced Financial Application Training Table of Contents Introduction Lesson 1: Lesson 2: Lesson 3: Lesson 4: Creating Journal Entries using Excel Account
How To Use Sharepoint Online On A Pc Or Macbook Or Macsoft Office 365 On A Laptop Or Ipad Or Ipa Or Ipo On A Macbook (For A Laptop) On A Desktop Or Ipro (For An Ipro
Getting Started with SharePoint Online for Small Business By Robert Crane Computer Information Agency http://www.ciaops.com Terms This Guide from the Computer Information Agency is provided as is. Every
Search help. More on Office.com: images templates
Page 1 of 14 Access 2010 Home > Access 2010 Help and How-to > Getting started Search help More on Office.com: images templates Access 2010: database tasks Here are some basic database tasks that you can
Excel basics. Before you begin. What you'll learn. Requirements. Estimated time to complete:
Excel basics Excel is a powerful spreadsheet and data analysis application, but to use it most effectively, you first have to understand the basics. This tutorial introduces some of the tasks and features
Quick Reference Guide
Simplified Web Interface for Teachers Quick Reference Guide Online Development Center Site Profile 5 These fields will be pre-populated with your information { 1 2 3 4 Key 1) Website Title: Enter the name
TIBCO Spotfire Automation Services 6.5. User s Manual
TIBCO Spotfire Automation Services 6.5 User s Manual Revision date: 17 April 2014 Important Information SOME TIBCO SOFTWARE EMBEDS OR BUNDLES OTHER TIBCO SOFTWARE. USE OF SUCH EMBEDDED OR BUNDLED TIBCO
Using the Bulk Export/Import Feature
Using the Bulk Export/Import Feature Through Bulksheet Export and Import, agencies have the ability to download complete campaign structures and statistics across multiple clients and providers, and to
Microsoft Office 2010: Access 2010, Excel 2010, Lync 2010 learning assets
Microsoft Office 2010: Access 2010, Excel 2010, Lync 2010 learning assets Simply type the id# in the search mechanism of ACS Skills Online to access the learning assets outlined below. Titles Microsoft
Migrating to Excel 2010 from Excel 2003 - Excel - Microsoft Office 1 of 1
Migrating to Excel 2010 - Excel - Microsoft Office 1 of 1 In This Guide Microsoft Excel 2010 looks very different, so we created this guide to help you minimize the learning curve. Read on to learn key
Using Microsoft Excel to Manage and Analyze Data: Some Tips
Using Microsoft Excel to Manage and Analyze Data: Some Tips Larger, complex data management may require specialized and/or customized database software, and larger or more complex analyses may require
OWrite One of the more interesting features Manipulating documents Documents can be printed OWrite has the look and feel Find and replace
OWrite is a crossplatform word-processing component for Mac OSX, Windows and Linux with more than just a basic set of features. You will find all the usual formatting options for formatting text, paragraphs
Getting Started with NeatScan To Office
Getting Started with NeatScan To Office NeatScan To Office is easy and convenient to use. You'll soon be scanning documents, business cards, and receipts into Office applications. 1 What is NeatScan To
BASIS International Ltd. - March 2010. - DocOut - Interfacing Reports with the Barista Document Management System
- DocOut - Interfacing Reports with the Barista Document Management System By Chris Hawkins Introduction 'AddonSoftware by Barista' takes advantage of Barista s versatile Document Management System knows
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
SENDING E-MAILS WITH MAIL MERGE
SENDING E-MAILS WITH MAIL MERGE You can use Mail Merge for Word and Outlook to create a brochure or newsletter and send it by e- mail to your Outlook contact list or to another address list, created in
Crystal Reports for Eclipse
Crystal Reports for Eclipse Table of Contents 1 Creating a Crystal Reports Web Application...2 2 Designing a Report off the Xtreme Embedded Derby Database... 11 3 Running a Crystal Reports Web Application...
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
Microsoft Excel Basics
COMMUNITY TECHNICAL SUPPORT Microsoft Excel Basics Introduction to Excel Click on the program icon in Launcher or the Microsoft Office Shortcut Bar. A worksheet is a grid, made up of columns, which are
Excel 2007 Tutorials - Video File Attributes
Get Familiar with Excel 2007 42.40 3.02 The Excel 2007 Environment 4.10 0.19 Office Button 3.10 0.31 Quick Access Toolbar 3.10 0.33 Excel 2007 Ribbon 3.10 0.26 Home Tab 5.10 0.19 Insert Tab 3.10 0.19 Page
Importing TSM Data into Microsoft Excel using Microsoft Query
Importing TSM Data into Microsoft Excel using Microsoft Query An alternate way to report on TSM information is to use Microsoft Excel s import facilities using Microsoft Query to selectively import the
Microsoft Excel 2010 Tutorial
1 Microsoft Excel 2010 Tutorial Excel is a spreadsheet program in the Microsoft Office system. You can use Excel to create and format workbooks (a collection of spreadsheets) in order to analyze data and
Excel 2007: Basics Learning Guide
Excel 2007: Basics Learning Guide Exploring Excel At first glance, the new Excel 2007 interface may seem a bit unsettling, with fat bands called Ribbons replacing cascading text menus and task bars. This
Excel Level Two. Introduction. Contents. Exploring Formulas. Entering Formulas
Introduction Excel Level Two This workshop introduces you to formulas, functions, moving and copying data, using autofill, relative and absolute references, and formatting cells. Contents Introduction
Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00
Course Page - Page 1 of 12 Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Description Responsive Mobile Web Development is more
Android Programming. Høgskolen i Telemark Telemark University College. Cuong Nguyen, 2013.06.18
Høgskolen i Telemark Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics Cuong Nguyen, 2013.06.18 Faculty of Technology, Postboks 203, Kjølnes ring
ArcGIS Tutorial: Adding Attribute Data
ArcGIS Tutorial: Adding Attribute Data Introduction A common need in GIS is to map characteristics, or attributes, of different geographic areas. These maps are called thematic maps. Examples of thematic
KINETIC SR (Survey and Request)
KINETIC SR (Survey and Request) Installation and Configuration Guide Version 5.0 Revised October 14, 2010 Kinetic SR Installation and Configuration Guide 2007-2010, Kinetic Data, Inc. Kinetic Data, Inc,
Writer Guide. Chapter 15 Using Forms in Writer
Writer Guide Chapter 15 Using Forms in Writer Copyright This document is Copyright 2005 2008 by its contributors as listed in the section titled Authors. You may distribute it and/or modify it under the
Computer Literacy Syllabus Class time: Mondays 5:00 7:00 p.m. Class location: 955 W. Main Street, Mt. Vernon, KY 40456
Computer Literacy Syllabus Class time: Mondays 5:00 7:00 p.m. Class location: 955 W. Main Street, Mt. Vernon, KY 40456 INSTRUCTOR: Jamie A. McFerron OFFICE: 245 Richmond Street Mt. Vernon, KY 40456 PHONE:
COMPANIES REGISTRY. Third Party Software Interface Specification. (Part 1 Overview)
COMPANIES REGISTRY Third Party Software Interface Specification () of Integrated Companies Registry Information System Version 1.3 March 2014 The Government of the Hong Kong Special Administrative Region
EXCEL VBA ( MACRO PROGRAMMING ) LEVEL 1 21-22 SEPTEMBER 2015 9.00AM-5.00PM MENARA PJ@AMCORP PETALING JAYA
EXCEL VBA ( MACRO PROGRAMMING ) LEVEL 1 21-22 SEPTEMBER 2015 9.00AM-5.00PM MENARA PJ@AMCORP PETALING JAYA What is a Macro? While VBA VBA, which stands for Visual Basic for Applications, is a programming
Web Ninja CMS User Manual. Specialists in Integrated E-Commerce Solutions
Web Ninja CMS User Manual Specialists in Integrated E-Commerce Solutions Table of Contents Login 2 File Manager 14 CMS Layout 3 SEO Manager 15 Customers 4 Software Pages 16 Customer Details 5 Block Content
As in the example above, a Budget created on the computer typically has:
Activity Card Create a How will you ensure that your expenses do not exceed what you planned to invest or spend? You can create a budget to plan your expenditures and earnings. As a family, you can plan
Task Force on Technology / EXCEL
Task Force on Technology EXCEL Basic terminology Spreadsheet A spreadsheet is an electronic document that stores various types of data. There are vertical columns and horizontal rows. A cell is where the
To reuse a template that you ve recently used, click Recent Templates, click the template that you want, and then click Create.
What is Excel? Applies to: Excel 2010 Excel is a spreadsheet program in the Microsoft Office system. You can use Excel to create and format workbooks (a collection of spreadsheets) in order to analyze
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
PloneSurvey User Guide (draft 3)
- 1 - PloneSurvey User Guide (draft 3) This short document will hopefully contain enough information to allow people to begin creating simple surveys using the new Plone online survey tool. Caveat PloneSurvey
EXCEL 2010: PAGE LAYOUT
EXCEL 2010: PAGE LAYOUT PAGE SET UP Options to change the page layout of a spreadsheet are available from the PAGE LAYOUT tab. Most of these options are available from the PAGE SETUP group on this tab.
EXCEL Tutorial: How to use EXCEL for Graphs and Calculations.
EXCEL Tutorial: How to use EXCEL for Graphs and Calculations. Excel is powerful tool and can make your life easier if you are proficient in using it. You will need to use Excel to complete most of your
Create a survey using Google Forms
Create a survey using Google Forms You can plan events, make a survey or poll, give students a quiz, or collect other information in an easy, streamlined way with Google Forms. Google Forms can be connected
Abstract. For notes detailing the changes in each release, see the MySQL for Excel Release Notes. For legal information, see the Legal Notices.
MySQL for Excel Abstract This is the MySQL for Excel Reference Manual. It documents MySQL for Excel 1.3 through 1.3.6. Much of the documentation also applies to the previous 1.2 series. For notes detailing
Part II of The Pattern to Good ILE. with RPG IV. Scott Klement
Part II of The Pattern to Good ILE with RPG IV Presented by Scott Klement http://www.scottklement.com 2008, Scott Klement There are 10 types of people in the world. Those who understand binary, and those
Book Builder Training Materials Using Book Builder September 2014
Book Builder Training Materials Using Book Builder September 2014 Prepared by WDI, Inc. Table of Contents Introduction --------------------------------------------------------------------------------------------------------------------
DALHOUSIE NOTES ON PAYROLL EXPENSE DETAIL IN FINANCE SELF SERVICE. QUICK REFERENCE As of September 1, 2015
DALHOUSIE NOTES ON PAYROLL EXPENSE DETAIL IN FINANCE SELF SERVICE QUICK REFERENCE As of September 1, 2015 Quick reference document outlining the basic steps to access the payroll expense detail results
