Select excerpts from man, windows & panes using vi-mode and my tmux.conf file
Following commands are derived from my tmux.conf. bind-key is mapped as Ctrl+Shift+Z
| Ctrl+Shift+Z v | Split Window Vertically |
| Ctrl+Shift+Z h | Split Window Horizontally |
| Ctrl+Shift+Z h or Alt+h or Alt+Left | Focus on pane left |
| Ctrl+Shift+Z j or Alt+j or Alt+Down | Focus on pane below |
| Ctrl+Shift+Z k or Alt+k or Alt+Up | Focus on pane above |
| Ctrl+Shift+Z l or Alt+l or Alt+Right | Focus on pane right |
| Ctrl+Shift+Z J | Decrease Pane 5 lines |
| Ctrl+Shift+Z K | Increase Pane 5 lines |
| Ctrl+Shift+Z H | Decrease Pane 5 columns |
| Ctrl+Shift+Z L | Increase Pane 5 columns |
| Shift+Right | Next Window |
| Shift+Left | Previous Window |
Initiate block copy mode with Ctrl+Shift+Z [
Use arrow keys to move around the shell window to perform the following.
| Ctr+Shift+Z v | begin selection, enter visual mode |
| Ctr+Shift+Z y | yank (copy) selection to buffer |
After yanking the selection to the buffer and returning to the command prompt can copy from tmux buffer to system clipboard
| Ctr+Shift+Z y | copy from buffer to clipboard |
| Shift+Insert | copy from clipboard to command line |
| C-b | Send the prefix key (C-b) through to the application. |
| C-o | Rotate the panes in the current window forwards. |
| C-z | Suspend the tmux client. |
| ! | Break the current pane out of the window. |
| " | Split the current pane into two, top and bottom. |
| # | List all paste buffers. |
| $ | Rename the current session. |
| % | Split the current pane into two, left and right. |
| & | Kill the current window. |
| ' | Prompt for a window index to select. |
| , | Rename the current window. |
| - | Delete the most recently copied buffer of text. |
| . | Prompt for an index to move the current window. |
| 0 to 9 | Select windows 0 to 9. |
| : | Enter the tmux command prompt. |
| ; | Move to the previously active pane. |
| = | Choose which buffer to paste interactively from a list. |
| ? | List all key bindings. |
| D | Choose a client to detach. |
| [ | Enter copy mode to copy text or view the history. |
| ] | Paste the most recently copied buffer of text. |
| c | Create a new window. |
| d | Detach the current client. |
| f | Prompt to search for text in open windows. |
| i | Display some information about the current window. |
| l | Move to the previously selected window. |
| n | Change to the next window. |
| o | Select the next pane in the current window. |
| p | Change to the previous window. |
| q | Briefly display pane indexes. |
| r | Force redraw of the attached client. |
| s | Select a new session for the attached client interactively. |
| L | Switch the attached client back to the last session. |
| t | Show the time. |
| w | Choose the current window interactively. |
| x | Kill the current pane. |
| { | Swap the current pane with the previous pane. |
| } | Swap the current pane with the next pane. |
| ~ | Show previous messages from tmux, if any. |
| Page Up | Enter copy mode and scroll one page up. |
| Up, Down, Left, Right | Change to the pane above, below, to the left, or to the right of the current pane. |
| M-1 to M-5 | Arrange panes in one of the five preset layouts: even-horizontal, even-vertical, main-horizontal, main-vertical, or tiled. |
| M-n | Move to the next window with a bell or activity marker. |
| M-o | Rotate the panes in the current window backwards. |
| M-p | Move to the previous window with a bell or activity marker. |
| C-Up, C-Down, C-Left, C-Right | Resize the current pane in steps of one cell. |
| M-Up, M-Down, M-Left, M-Right | Resize the current pane in steps of five cells. |
| ^ | Back to indentation |
| G | Bottom of history |
| Escape | Clear selection |
| Enter | Copy selection |
| j | Cursor down |
| h | Cursor left |
| l | Cursor right |
| L | Cursor to bottom line |
| M | Cursor to middle line |
| H | Cursor to top line |
| k | Cursor up |
| d | Delete entire line |
| D | Delete/Copy to end of line |
| $ | End of line |
| : | Go to line |
| C-d | Half page down |
| C-u | Half page up |
| f | Jump forward |
| t | Jump to forward |
| F | Jump backward |
| T | Jump to backward |
| ; | Jump again |
| , | Jump again in reverse |
| C-f | Next page |
| W | Next space |
| E | Next space, end of word |
| w | Next word |
| e | Next word end |
| p | Paste buffer |
| C-b | Previous page |
| b | Previous word |
| B | Previous space |
| q | Quit mode |
| v | Rectangle toggle |
| C-Down or C-e | Scroll down |
| C-Up or C-y | Scroll up |
| n | Search again |
| N | Search again in reverse |
| ? | Search backward |
| / | Search forward |
| 0 | Start of line |
| Space | Start selection |
| g | Top of history |
The more you tighten your grip, Tarkin, the more star systems will slip through your fingers. I call it luck. Ye-ha! I call it luck.
I suggest you try it again, Luke. This time, let go your conscious self and act on instinct. I want to come with you to Alderaan. There’s nothing for me here now. I want to learn the ways of the Force and be a Jedi, like my father before me.
I can’t get involved! I’ve got work to do! It’s not that I like the Empire, I hate it, but there’s nothing I can do about it right now. It’s such a long way from here. Obi-Wan is here. The Force is with him.
What good is a reward if you ain’t around to use it? Besides, attacking that battle station ain’t my idea of courage. It’s more like…suicide. Your eyes can deceive you. Don’t trust them. The Force is strong with this one. I have you now.
Dantooine. They’re on Dantooine. Oh God, my uncle. How am I ever gonna explain this? Hey, Luke! May the Force be with you. No! Alderaan is peaceful. We have no weapons. You can’t possibly… I suggest you try it again, Luke. This time, let go your conscious self and act on instinct.
What?! I’m trying not to, kid. Still, she’s got a lot of spirit. I don’t know, what do you think? Don’t act so surprised, Your Highness. You weren’t on any mercy mission this time. Several transmissions were beamed to this ship by Rebel spies. I want to know what happened to the plans they sent you.
]]>CopyQ help
help generated by copyq -h
Usage: copyq [COMMAND] Actions:
| Switch | Description |
|---|---|
| show | Show main window |
| hide | Hide main window. |
| toggle | Show or hide main window. |
| menu | Open context menu. |
| exit | Exit server. |
| disable, enable | Disable or enable clipboard content storing. |
| select [ROW=0] | Copy item in the row to clipboard. |
| next | Copy next item from current tab to clipboard. |
| previous | Copy previous item from current tab to clipboard. |
| add TEXT… | Add text into clipboard. |
| insert ROW TEXT | Insert text into given row. |
| remove [ROWS=0…] | Remove items in given rows. |
| tab | List available tab names. |
| tab NAME [COMMAND] | Run command on tab with given name. Tab is created if it doesn't exist. Default is the first tab. |
| removetab NAME | Remove tab. |
| renametab NAME NEW_NAME | Rename tab. |
| exporttab FILE_NAME | Export items to file. |
| importtab FILE_NAME | Import items from file. |
For an exhaustive list of all Ctrl+W syntax, click Vim documentation: windows
| Ctrl+W +/- | increase/decrease window height; prefix with a number, e.g.: 20<C-w>+ |
| Ctrl+W _ | increase/decrease window height; prefix with a number, e.g.: 50<C-w>_ |
| Ctrl+W >/< | increase/decrease window width; prefix with a number, e.g.: 30<C-w>< |
| Ctrl+W | | increase/decrease window width; prefix with a number, e.g.: 30<C-w>| |
| Ctrl+W = | equalise width and height of all windows |
| Ctrl+W s | Split current window in two horizontally |
| Ctrl+W v | Split current window in two vertically |
| Ctrl+W n | Create a new window and start editing an empty file in it. |
| Ctrl+W Ctrl+J, Ctrl+W down | Move cursor to Nth window below current one. |
| Ctrl+W Ctrl+k, Ctrl+W up | Move cursor to Nth window above current one. |
| Ctrl+W Ctrl+H, Ctrl+W lft, Ctrl+W backsp | Move cursor to Nth window left of current one. |
| Ctrl+W Ctrl+l, Ctrl+W right | Move cursor to Nth window right of current one. |
| Ctrl+W Shift-T | Move buffer to a tab |
| , F5 | NerdTree file manager using directory of current file |
| , cd | Set working directory to path of current file |
| , d | Duplicate current line |
| , ev | Open .vimrc in a new tab for editing |
| , fn | Echo currently edited file's name to system clipboard |
| , ln , tn | Toggle appearance of line numbers between absolute consecutive order and relative to current line |
| , n | Turn off find highlighting — :nohl |
| , sv | source .vimrc (reload settings) |
| , v | execute paste from system clipboard |
| , y | paste from system clipboard |
| , + (non-keypad) | vertical resize +5 columns |
| , - (non-keypad) | vertical resize -5 columns |
| h | move left |
| j | move down |
| k | move up |
| l | move right |
| M | move to middle of screen |
| L | move to bottom of screen |
| w | jump forwards to the start of a word |
| W | jump forwards to the start of a word (words can contain punctuation) |
| e | jump forwards to the end of a word |
| E | jump forwards to the end of a word (words can contain punctuation) |
| b | jump backwards to the start of a word |
| B | jump backwards to the start of a word (words can contain punctuation) |
| 0 | jump to the start of the line |
| ^ | jump to the first non-blank character of the line |
| $ | jump to the end of the line |
| g_ | jump to the last non-blank character of the line |
| gg | go to the first line of the document |
| G | go to the last line of the document |
| 5G | go to line 5 |
| fx | jump to next occurrence of character x |
| tx | jump to before next occurrence of character x |
| } | jump to next paragraph (or function/block, when editing code) |
| { | jump to previous paragraph (or function/block, when editing code) |
| zz | center cursor on screen |
| Ctrl+b | move back one full screen |
| Ctrl+f | move forward one full screen |
| Ctrl+d | move forward ½ a screen |
| Ctrl+u | move back ½ a screen |
| Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines. | |
| Back to Table of Contents | |
| i | insert before the cursor |
| I | insert at the beginning of the line |
| a | insert (append) after the cursor |
| A | insert (append) at the end of the line |
| o | append (open) a new line below the current line |
| O | append (open) a new line above the current line |
| ea | insert (append) at the end of the word |
| Esc | exit insert mode |
| Back to Table of Contents |
Files
| o: | open in previous window |
| go: | preview |
| t: | open in new tab |
| T: | open in new tab silently |
| i: | open split |
| gi: | preview split |
| s: | open vsplit |
| gs: | preview vsplit |
Directories
| o: | open & close |
| O: | recursively open |
| x: | close parent |
| X: | close all children recursively |
| e: | explore selected directory |
Bookmarks
| o: | open bookmark |
| t: | open in new tab |
| T: | open in new tab silently |
| D: | delete bookmark |
Filesystem
| C: | change tree root to selected dir |
| u: | move tree root up a directory |
| U: | move tree root up a directory but leave old root open |
| r: | refresh cursor directory |
| R: | refresh current root |
| m: | show menu |
| cd: | change the CWD to the selected dir |
| CD | change tree root to CWD |
| Command | Explain |
Tree navigation
| p: | go to parent |
| P: | go to root |
| K: | go to first child |
| J: | go to last child |
| Ctrl+k: | go to previous sibling |
| Ctrl+j: | go to next sibling |
Tree filtring
| I: | hidden files (off) |
| f: | file filters (on) |
| F: | files (on) |
| B: | bookmarks (off) |
Other Commands
| q: | Close the NERDtree window |
| A: | toggle zoom NERDtree window |
| ?: | toggle help |
| r | replace a single character |
| J | join line below to the current one |
| cc or S | change (replace) entire line |
| cw | change (replace) to the end of the word |
| c$ | change (replace) to the end of the line |
| s | delete character and substitute text |
| xp | transpose two letters (delete and paste) |
| u | undo |
| Ctrl+R | redo |
| . (period) | repeat last command |
| Back to Table of Contents |
| :e file | edit a file in a new buffer |
| :bnext or :bn | go to the next buffer |
| :bprev or :bp | go to the previous buffer |
| :bd | delete a buffer (close a file) |
| :ls | list all open buffers |
| :sp file | open a file in a new buffer and split window |
| :vsp file | open a file in a new buffer and vertically split window |
| Ctrl + ws | split window |
| Ctrl + ww | switch windows |
| Ctrl + wq | quit a window |
| Ctrl + wv | split window vertically |
| Ctrl + wh | move cursor to the left window (vertical split) |
| Ctrl + wl | move cursor to the right window (vertical split) |
| Ctrl + wj | move cursor to the window below (horizontal split) |
| Ctrl + wk | move cursor to the window above (horizontal split) |
| Back to Table of Contents |
| v | start visual mode, mark lines, then do a command (like y-yank) |
| V | start linewise visual mode |
| o | move to other end of marked area |
| Ctrl + v | start visual block mode |
| O | move to other corner of block |
| aw | mark a word |
| ab | a block with () |
| aB | a block with {} |
| ib | inner block with () |
| iB | inner block with {} |
| Esc | exit visual mode |
| Back to Table of Contents |
| > | shift text right |
| < | shift text left |
| y | yank (copy) marked text |
| d | delete marked text |
| ~ (tilde) | switch case |
| Back to Table of Contents |
| yy | yank (copy) a line |
| 2yy | yank (copy) 2 lines |
| yw | yank (copy) the characters of the word from the cursor position to the start of the next word |
| y$ | yank (copy) to end of line |
| p | put (paste) the clipboard after cursor |
| P | put (paste) before cursor |
| dd | delete (cut) a line |
| 2dd | delete (cut) 2 lines |
| dw | delete (cut) the characters of the word from the cursor position to the start of the next word |
| D | delete (cut) to the end of the line |
| d$ | delete (cut) to the end of the line |
| x | delete (cut) character |
| Back to Table of Contents |
| :marks | list if marks |
| ma | set current position for mark A |
| `a | jump to position of mark A |
| y`a | yank text to position of mark A |
| Back to Table of Contents |
| :reg | show registers content |
| "xy | yank into register x |
| "xp | paste contents of register x |
| Registers are stored in ~/.viminfo, and will be loaded again on next restart of vim. Register 0 contains always the value of the last yank command. | |
| Back to Table of Contents | |
| /pattern | search for pattern |
| ?pattern | search backward for pattern |
| \vpattern | 'very magic' pattern: non-alphanumeric characters are interpreted as special regex symbols (no escaping needed) |
| n | repeat search in same direction |
| N | repeat search in opposite direction |
| :%s/old/new/g | replace all old with new throughout file |
| :%s/old/new/gc | replace all old with new throughout file with confirmations |
| :noh | remove highlighting of search matches |
| Back to Table of Contents |
| :vimgrep /pattern/ {file} | search for pattern in multiple files e.g: :vimgrep /foo/ **/* |
| :cn | jump to the next match |
| :cp | jump to the previous match |
| :copen | open a window containing the list of matches |
| Back to Table of Contents |
| :tabnew or :tabnew file | open a file in a new tab |
| Ctrl+wT | move the current split window into its own tab |
| gt :tabn :tabnext | move to the next tab |
| gT :tabprev :tabp | move to the previous tab |
| #gt | move to the tab number # |
| :tabmove # | move current tab to the #th position (indexed from 0) |
| :tabc or :tabclose | close the current tab and all its windows |
| :tabo or :tabonly | close all tabs except for the current one |
| :tabdo | run the command on all tabs (e.g. :tabdo q - closes all opened tabs) |
| Back to Table of Contents |
| :w | write [save] file but don't exit |
| :wq | write [save] |
| :q | quit [fails if file has changed] |
| :q! | quit and throw away changes |
| Back to Table of Contents |
wmctrl help
help generated by wmctrl -h
Actions:
Options:
| switch | description |
|---|---|
| -i | Interpret <WIN> as a numerical window ID.wmctrl -ir 0x06600031 -T "D78" The hexadecimal string '0x06600031' is the intifier found using option -l above. |
| -G | Include geometry in the window list. |
| -F | Modifies the behavior of the window title matching algorithm. It will match only the full window title instead of a substring, when this option is used. Furthermore it makes the matching case sensitive. |
| -v | Be verbose. Useful for debugging. |
Index of Projects migrated from ZimWiki
If you are accustomed to using a graphical user interface you don’t see all of the changes that take place when a USB device is connected to a computer. Each time a Keyboard Video Mouse switch is used to activate input to a system, it is like connecting the device for the first time that day.
This discovery might fly in the face of the premise these connections are supposed to bring to a modern operating system environment. Back in the days before USB, any changes to hooking up a peripheral device such as a keyboard, mouse, printer or scanner required shutting down the machine before making such a change. After two crashes in the midst of the process the system was unpacking and applying the new packages, having a system crash in the middle of an upgrade process can not be seen as a fluke. It should not surprise me really. USB demos have been crashing since the days of Windows 98.
Maybe it is just the model of my KVM switch or the fact mine is USB as opposed to the old PS/2 connections, but heed the warning: Using a KVM switch during upgrade to a new version of Ubuntu through the update manager can make you scream, “NOOOOOOO!”
]]>This tutorial assumes you know the basics such as layers, text tool, paint bucket and working with selections.

This will select all of your text.




Click OK to proceed.


This will select your text.





| Property | Description | Zen Coding |
|---|---|---|
| background | Sets all the background properties in one declaration | bg |
| background-attachment | Sets whether a background image is fixed or scrolls with the rest of the page | bga |
| background-color | Sets the background color of an element | bgc |
| background-image | Sets the background image for an element | bgi |
| background-position | Sets the starting position of a background image | bgp |
| background-repeat | Sets how a background image will be repeated | bgr |
| border | Sets all the border properties in one declaration | bd |
| border-bottom | Sets all the bottom border properties in one declaration | bdb |
| border-bottom-color | Sets the color of the bottom border | bdb+ |
| border-bottom-style | Sets the style of the bottom border | bdbs |
| border-bottom-width | Sets the width of the bottom border | bdbw |
| border-color | Sets the color of the four borders | bdc |
| border-collapse | Specifies whether or not table borders should be collapsed | bdcl |
| border-left | Sets all the left border properties in one declaration | bdl |
| border-left-color | Sets the color of the left border | bdlc |
| border-left-style | Sets the style of the left border | bdls |
| border-left-width | Sets the width of the left border | bdlw |
| border-right | Sets all the right border properties in one declaration | bdr |
| border-right-color | Sets the color of the right border | bdrc |
| border-right-style | Sets the style of the right border | bdrs |
| border-right-width | Sets the width of the right border | bdrw |
| border-spacing | Specifies the distance between the borders of adjacent cells | bdsp |
| border-style | Sets the style of the four borders | bds |
| border-top | Sets all the top border properties in one declaration | bdt |
| border-top-color | Sets the color of the top border | bdtc |
| border-top-style | Sets the style of the top border | bdts |
| border-top-width | Sets the width of the top border | bdtw |
| border-width | Sets the width of the four borders | bdw |
| bottom | Sets the bottom margin edge for a positioned box | b |
| caption-side | Specifies the placement of a table caption | cps |
| clear | Specifies which sides of an element where other floating elements are not allowed | cl |
| clip | Clips an absolutely positioned element | cp |
| color | Sets the color of text | c |
| content | Used with the :before and :after pseudo-elements, to insert generated content | ct |
| counter-increment | Increments one or more counters | coi |
| counter-reset | Creates or resets one or more counters | cor |
| cursor | Specifies the type of cursor to be displayed | cur |
| direction | Specifies the text direction/writing direction | N/a |
| display | Specifies the type of box an element should generate | d |
| empty-cells | Specifies whether or not to display borders and background on empty cells in a table | ec |
| float | Specifies whether or not a box should float | fl |
| font | Sets all the font properties in one declaration | f |
| font-family | Specifies the font family for text | ff |
| font-size | Specifies the font size of text | fz |
| font-style | Specifies the font style for text | fs |
| font-variant | Specifies whether or not a text should be displayed in a small-caps font | fv |
| font-weight | Specifies the weight of a font | fw |
| height | Sets the height of an element | h |
| left | Sets the left margin edge for a positioned box | l |
| letter-spacing | Increase or decrease the space between characters in a text | lts |
| line-height | Sets the line height | lh |
| list-style | Sets all the properties for a list in one declaration | lis |
| list-style-image | Specifies an image as the list-item marker | lisi |
| list-style-position | Specifies if the list-item markers should appear inside or outside the content flow | lisp |
| list-style-type | Specifies the type of list-item marker | list |
| margin | Sets all the margin properties in one declaration | m |
| margin-bottom | Sets the bottom margin of an element | mb |
| margin-left | Sets the left margin of an element | ml |
| margin-right | Sets the right margin of an element | mr |
| margin-top | Sets the top margin of an element | mt |
| max-height | Sets the maximum height of an element | mah |
| max-width | Sets the maximum width of an element | maw |
| min-height | Sets the minimum height of an element | mih |
| min-width | Sets the minimum width of an element | miw |
| orphans | Sets the minimum number of lines that must be left at the bottom of a page when a page break occurs inside an element | orp |
| outline | Sets all the outline properties in one declaration | o |
| outline-color | Sets the color of an outline | oc |
| outline-style | Sets the style of an outline | os |
| outline-width | Sets the width of an outline | ow |
| overflow | Specifies what happens if content overflows an element's box | ov |
| padding | Sets all the padding properties in one declaration | p |
| padding-bottom | Sets the bottom padding of an element | pb |
| padding-left | Sets the left padding of an element | pl |
| padding-right | Sets the right padding of an element | pr |
| padding-top | Sets the top padding of an element | pt |
| page-break-after | Sets the page-breaking behavior after an element | pgba |
| page-break-before | Sets the page-breaking behavior before an element | pgbb |
| page-break-inside | Sets the page-breaking behavior inside an element | pgbi |
| position | Specifies the type of positioning for an element | pos |
| quotes | Sets the type of quotation marks for embedded quotations | q |
| right | Sets the right margin edge for a positioned box | r |
| table-layout | Sets the layout algorithm to be used for a table | tbl |
| text-align | Specifies the horizontal alignment of text | ta |
| text-decoration | Specifies the decoration added to text | td |
| text-indent | Specifies the indentation of the first line in a text-block | ti |
| text-shadow | Specifies the shadow effect added to text | tsh |
| text-transform | Controls the capitalization of text | tt |
| top | Sets the top margin edge for a positioned box | t |
| vertical-align | Sets the vertical alignment of an element | va |
| visibility | Specifies whether or not an element is visible | v |
| white-space | Specifies how white-space inside an element is handled | whs |
| widows | Sets the minimum number of lines that must be left at the top of a page when a page break occurs inside an element | wid |
| width | Sets the width of an element | w |
| word-spacing | Increases or decreases the space between words in a text | wos |
| z-index | Sets the stack order of an element | z |
]]>
If you have a spreadsheet software like Microsoft Excel or OpenOffice Calc, have you considered the power of that program to prepare data? Before you think about finding software to convert spreadsheets to MySQL, Postgre SQL or other database tables for web applications, have a look at this how-to for creating SQL INSERT statements.
In the above screenshot we have a simple table of employee information in a spreadsheet. How do we insert those in a database table? To work in MySQL, each of those rows has to resemble an insert statement like these:
[sql] INSERT INTOcompany.emp (id, fname, lname, city) VALUES ( 1, ‘Ed’, ‘Brown’, ‘Ste-Therese’);
INSERT INTO company.emp (id, fname, lname, city) VALUES ( 2, ‘Oscar’, ‘Madison’, ‘Chambly’);
INSERT INTO company.emp (id, fname, lname, city) VALUES ( 3, ‘Felix’, ‘Unger’, ‘Pointe-Claire’);
[/sql]
Using string concatenation it is possible to create statements to insert each of those rows to a MySQL table. How does each one of those statements differ? All that is distinct are the values for id, fname, lname and city. If we can come up with a text equation to change those values for each of the rows, the task of creating an insert statement for each row of data will be so much easier.
There are two main components for text equations in spreadsheets:
The screenshot below illustrates the text equation that results in the SQL expression:
[sql] INSERT INTOcompany.emp (id, fname, lname, city) VALUES ( 1, ‘Ed ‘, ‘Brown’, ‘Ste-Therese’);
[/sql]
Expressed another way, the text illustration of the SQL statement highlights the variable parts of the text equation in white on black whereas the constant parts of the equation are in blue on grey.
Once the equation is returning desired results, copy and paste from the first row to all other rows in the spreadsheet.
With all the queries formed and reviewed by you as correct – yes, check your work – the next steps are fairly simple.
Using MySQL at the command-line enter a command such as:
[bash]$ mysql -u[user name] -p[password]<inserts.sql[/bash]With the appropriate user name and password submitted, MySQL will execute the statements in the inserts.sql file.
Feel free to download a copy of the sample spreadsheet so you can try this on your own.
Sample Excel (xls) file in ZIP: employee_insert_demo.zip MD5 hash: a1e1d878d68be2b3975a8f211dd0dfe9
]]>