<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WebProNews &#187; Spreadsheet</title>
	<atom:link href="http://www.webpronews.com/tag/spreadsheet/feed" rel="self" type="application/rss+xml" />
	<link>http://www.webpronews.com</link>
	<description>Breaking News in Tech, Search, Social, &#38; Business</description>
	<lastBuildDate>Mon, 13 Feb 2012 19:46:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Basic Keyword Strategy &amp; Tips</title>
		<link>http://www.webpronews.com/asic-keyword-strategy-tips-2007-11</link>
		<comments>http://www.webpronews.com/asic-keyword-strategy-tips-2007-11#comments</comments>
		<pubDate>Thu, 01 Nov 2007 19:02:45 +0000</pubDate>
		<dc:creator>Aaron Wall</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[AdWords]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[Free]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[Keyword]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[Queries]]></category>
		<category><![CDATA[Quintura]]></category>
		<category><![CDATA[Research]]></category>
		<category><![CDATA[Spreadsheet]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tool]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=41575</guid>
		<description><![CDATA[<p><strong>Keyword Research Tips<br />
<br />
</strong></p>]]></description>
			<content:encoded><![CDATA[<p><strong>Keyword Research Tips</p>
<p></strong></p>
<ul>
<li>If you have an old site you should use <a href="http://tools.seobook.com/analytics-tools/">analytics</a> to track what keywords you are getting traffic for. For most webmasters it is easier to rank for more related keywords than it is to discover and dominate new areas.</li>
<p></p>
<li>When you start a new site make sure you use keyword modifiers in your page titles, meta descriptions, and page copy. It is <a href="http://www.seobook.com/research-long-tail-googles-search-results-dominated-doorway-pages-spam">easier to rank for long tail terms than shorter search queries</a>.</li>
<p></p>
<li>You can <a href="http://tools.seobook.com/keyword-worksheets/keyword-worksheet.xls">find many keyword modifier types in this free XLS spreadsheet</a>.</li>
<p></p>
<li>When you start doing keyword research, you can start with a seed list of broad keywords to power a <a href="http://tools.seobook.com/keyword-tools/">keyword tool</a> and keep digging deeper. Then repeat the process with related keywords and other keyword tools. No tool is perfect. Think of them more as qualitative than quantitative. I like <a href="http://freekeywords.wordtracker.com/">Wordtracker</a> and <a href="http://tools.seobook.com/general/keyword/">my keyword tool</a>.</li>
<p></p>
<li>Organize your keywords into relevant baskets of keywords and modifiers that should be covered in different sections of your site and on different pages from your site.</li>
<p></p>
<li>I listed many bonus <a href="http://learn.wordtracker.com/articles/keyword-inspiration-aaron-wall-of-seobookcom-shares-his-secrets/">keyword research ideas</a> in a recent Wordtracker article.</li>
<p></p>
<li>Some of my favorite follow up keyword tools to use when optimizing a page are
<p></p>
<ul>
<li><a href="http://www.quintura.com/">Quintura</a> &#8211; shows a visual layout of related keywords</li>
<p></p>
<li><a href="https://adwords.google.com/select/KeywordToolExternal">Google AdWords tool</a> &#8211; shows you what keywords Google thinks a URL is relevant for and should be advertising on</li>
<p></p>
<li><a href="http://searchanalytics.compete.com/">Compete.com Search Analytics</a> &#8211; shows keywords that competing sites rank for</li>
</ul>
</li>
</ul>
<table>
<tbody>
<tr>
<td>
<p><object width="425" height="350"><param value="http://www.youtube.com/v/8v7lsJzmFIs" name="movie" /><embed width="425" height="350" type="application/x-shockwave-flash" src="http://www.youtube.com/v/8v7lsJzmFIs"></embed></object></p>
</td>
</tr>
</tbody>
</table>
<p>
<a href="http://www.seobook.com/video-keyword-research-101-basic-keyword-strategy-tips#comments" title="Comment on keyword tips">Comments</a></p>
<p>Tag: </p>
<div align="center"><a href="http://aj.600z.com/aj/41545/0/cc?z=1"><img width="336" height="55" border="0" src="http://aj.600z.com/aj/41545/0/vc?z=1&amp;dim=41551" alt="" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/asic-keyword-strategy-tips-2007-11/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Locks Up Spreadsheet Features</title>
		<link>http://www.webpronews.com/google-locks-up-spreadsheet-features-2007-07</link>
		<comments>http://www.webpronews.com/google-locks-up-spreadsheet-features-2007-07#comments</comments>
		<pubDate>Tue, 24 Jul 2007 17:15:04 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Googling]]></category>
		<category><![CDATA[Spreadsheet]]></category>
		<category><![CDATA[Spreadsheets]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=39329</guid>
		<description><![CDATA[A round of updates at Google Docs &#038; Spreadsheets added some handy features to users of the spreadsheet side of the service.
]]></description>
			<content:encoded><![CDATA[<p>A round of updates at Google Docs &#038; Spreadsheets added some handy features to users of the spreadsheet side of the service.<br />
<span id="more-39329"></span><br />
Google provided <a href=http://groups.google.com/group/GDSupdates/msg/9d24a5a45b1eaf44>a handful of additions</a> to their <a href=http://docs.google.com>Spreadsheets</a> product, and fixed a couple of issues. </p>
<p>
Speaking of addition, Google coded a new feature called Quicksum into the Spreadsheets. By selecting cells, Quicksum displays their total in the lower right corner of the page. Garett Rogers at <a href=http://blogs.zdnet.com/Google/?p=668>Googling Google</a> noted how this allows for calculations without having to write a formula first, which should benefit new spreadsheet users.</p>
<p>
Google also added what they call a &#8216;sortbar&#8217; to Spreadsheets. The sortbar is a draggable, horizontal break between column headers and data, they noted, with each column having a place in the sortbar  for fast sorting without leaving the Edit tab. </p>
<p>
By dragging that sortbar down, users have the option to freeze rows in Spreadsheets, a feature that makes editing a lengthy spreadsheet document much easier. Dragging and releasing the sortbar performs the freeze, with rows below the sortbar able to scroll freely.</p>
<p>
Collaborative editing will be color-coded by user. As multiple people edit a spreadsheet, each cell a person edits will be assigned a color, making it easier to tell who has done something on a sheet.</p>
<p>
Google expanded the viewability of Spreadsheets to any browser, but only supported browsers will be able to edit a spreadsheet. Their product team also fixed uploading issues with data and graphs that had been reported by users of the service.</p>
<p>
<small></small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/google-locks-up-spreadsheet-features-2007-07/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compete Lets You Play With Data</title>
		<link>http://www.webpronews.com/compete-lets-you-play-with-data-2007-07</link>
		<comments>http://www.webpronews.com/compete-lets-you-play-with-data-2007-07#comments</comments>
		<pubDate>Fri, 13 Jul 2007 17:50:51 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Attention Share]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Compete]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Spreadsheet]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=39133</guid>
		<description><![CDATA[A lengthy list of 200 sites ranked by Compete's Attention Share metric has a few insights, but it's even more fun to sort that information yourself.
]]></description>
			<content:encoded><![CDATA[<p>A lengthy list of 200 sites ranked by Compete&#8217;s Attention Share metric has a few insights, but it&#8217;s even more fun to sort that information yourself.<br />
<span id="more-39133"></span><br />
&#8220;With the number of sites on this very active list, it</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/compete-lets-you-play-with-data-2007-07/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Spreads Out Spreadsheet Options</title>
		<link>http://www.webpronews.com/google-spreads-out-spreadsheet-options-2006-09</link>
		<comments>http://www.webpronews.com/google-spreads-out-spreadsheet-options-2006-09#comments</comments>
		<pubDate>Thu, 21 Sep 2006 18:15:23 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Spreadsheets]]></category>
		<category><![CDATA[Options]]></category>
		<category><![CDATA[Spreadsheet]]></category>
		<category><![CDATA[Spreadsheets]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=31627</guid>
		<description><![CDATA[The search advertising company has added several features from the wish lists of Google Spreadsheets users to the service.
]]></description>
			<content:encoded><![CDATA[<p>The search advertising company has added several features from the wish lists of Google Spreadsheets users to the service.</p>
<table width="128" border="0" align="right">
<tr>
<td width="122" height="62"><a href="http://www.webproworld.com/viewtopic.php?p=324726"><img src="http://images.ientrymail.com/CommentImage-4.gif" width="130" height="60" border="0"></a></td>
</tr>
</table>
<p>Google&#8217;s Fuzzy Khosrowshahi, a Tech Lead on Spreadsheets, <a href=http://googleblog.blogspot.com/2006/09/new-spreadsheets-fun.html class=bluelink>discussed</a> some <a href=http://spreadsheets.google.com/ class=bluelink>Spreadsheets</a> features that users may or may not have seen slip into the product:</p>
<p><i>
<div style=margin-left:10px;>In a recent perusal of our Google Group, it occurred to me that our growing body of users is about as diverse as a group can get, in terms of spreadsheet desires.</p>
<p>Here&#8217;s a sampling of what people have been asking for:<br />
&bull;&nbsp; support for Open Document Format (handy for those who use Linux-based machines and Open Office products)<br />
&bull;&nbsp; a way to force multiple line text in a single cell (like a street address in, say, a spreadsheet for planning a wedding)<br />
&bull;&nbsp; currency symbols in addition to $<br />
&bull;&nbsp; an option to create PDF files that will print nicely<br />
&bull;&nbsp; the ability to share a spreadsheet with anyone who receives the URL (without having to specify their email address).</p></div>
<p></i><br />
Fuzzy wrote that these feature and more have <a  href=http://www.google.com/support/spreadsheets/bin/answer.py?answer=47136 class=bluelink>arrived</a>. Another feature unmentioned above, but likely very useful, is a prompt to save an unsaved spreadsheet, which will start the autosaving feature for that sheet.</p>
<p>The file export options now include pdf, odf, html, xls and csv formats. That combination should allow anyone to view or work with data contained in a Google Spreadsheet. </p>
<p>&#8212;<br />
Tag: </p>
<p>Add to <a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&#038;partner=wpn&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title),'delicious','toolbar=no,width=700,height=400'); return false;" CLASS="printMailTop"><img src=http://images1.ientrymail.com/webpronews/delicious-pic.png border=0> Del.icio.us</a> | <a href="javascript:void window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(window.location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img src=http://images1.ientrymail.com/webpronews/digg-pic.png border=0> Digg</a>  | <a href="javascript:void window.open('http://myweb2.search.yahoo.com/myresults/bookmarklet?t='+encodeURIComponent(document.title)+'&#038;u='+encodeURIComponent(window.location.href)+'&#038;tag=Google Spreadsheets','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img src=http://images1.ientrymail.com/webpronews/yahoo-pic.png border=0> Yahoo! My Web</a> | <a href="javascript:location.href='http://www.furl.net/storeIt.jsp?u='+encodeURIComponent(document.location.href)+'&#038;t='+encodeURIComponent(document.title)+' '"><img src=http://images1.ientrymail.com/webpronews/furl-pic.png border=0> Furl</a></p>
<p>Bookmark WebProNews: <a href=http://www.webpronews.com><img src=http://images.ientrymail.com/webpronews/wpn-readit.jpg border=0></a> </p>
<p><script language=JavaScript src="http://aj.600z.com/aj/1095/0/vj?z=1&#038;dim=1088&#038;pos=15"></script></p>
<p>David Utter is a staff writer for WebProNews covering technology and business. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/google-spreads-out-spreadsheet-options-2006-09/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Spreadsheet No Excel Killer</title>
		<link>http://www.webpronews.com/google-spreadsheet-no-excel-killer-2006-06</link>
		<comments>http://www.webpronews.com/google-spreadsheet-no-excel-killer-2006-06#comments</comments>
		<pubDate>Tue, 06 Jun 2006 13:43:32 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Policies]]></category>
		<category><![CDATA[Spreadsheet]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=29698</guid>
		<description><![CDATA[News stories and blog posts have begun to fill with the carillon of funeral bells for Microsoft as Google readies its minimalist spreadsheet program for public debut.
]]></description>
			<content:encoded><![CDATA[<p>News stories and blog posts have begun to fill with the carillon of funeral bells for Microsoft as Google readies its minimalist spreadsheet program for public debut.</p>
<table width="400" border="0" cellpadding="2" cellspacing="0">
<tr>
<td align="center"><img src="http://images.ientrymail.com/webpronews/060606GoogleSpreadsheet.jpg" alt="Google Spreadsheet No Excel Killer" width="400" height="200" border="0" class="irImage" title="Google Spreadsheet No Excel Killer"></td>
</tr>
<tr>
<td align="right" class="caption" style="padding-bottom: 10px; padding-left: 45px; padding-right: 45px;">Does Google&#8217;s Spreadsheet Impress?</td>
</tr>
<tr>
<td align="center" class="caption" style="padding-bottom: 0px;"><img src="http://images.ientrymail.com/webpronews/salon/complete.gif" width="334" height="21"></td>
</tr>
</table>
<p><i>Does Google&#8217;s launch of a free web-based spreadsheet program offer some benefit for your business? Is the free price point enough to overcome your concerns about hosting private data on Google&#8217;s servers? Chart it out for us at <a href=http://www.webproworld.com/viewtopic.php?p=304535 class=bluelink>WebProWorld</a>.</i></p>
<p>Here is a selection of eye-catching headlines seen online about the pending debut of <a href=http://www.google.com/googlespreadsheets/tour1.html class=bluelink>Google Spreadsheet</a> from the search engine company:</p>
<p>Google adds web-based spreadsheet to Microsoft woes<br />
Google Spreadsheets takes aim at Excel<br />
Google unveiling Excel competitor<br />
Coming soon: Google Spreadsheet. @SUM(trouble) for Microsoft&#8217;s bottom line?</p>
<p>Microsoft has been having plenty of trouble on its own, between delays in releasing the Vista operating system and being <a href=http://www.webpronews.com/topnews/topnews/wpn-60-20060529MicrosoftCriticMinimizingHimself.html class=bluelink>forced to change some unpopular policies</a> with its human resources processes. Now we have the image of a Google monster stalking the P&#038;L statements of Microsoft while wearing a bladed glove and a red-and-black sweater.</p>
<p>&#8220;Mr. Ballmer, your 9 am with <a href=http://www.imdb.com/gallery/mptv/1202/Mptv/1202/mptv_jb_09.jpg?path=gallery&#038;path_key=0087800 class=bluelink>Mr. Englund</a> from Google is here.&#8221;</p>
<p>While the threat that is Google Spreadsheets does have some stylish good looks, as far as we can tell from the limited screenshots that appear in its sneak peek, there&#8217;s one thing that the product definitely isn&#8217;t, and that&#8217;s Excel.</p>
<p>What Google Spreadsheets presents is a way to craft a multi-columned list of information, and a way to easily share that list with others. The service has not been activated yet to allow for a closer look at its formulas, though a link to them appears at the top of a spreadsheet.</p>
<p>A tabbed interface will let the user switch between formatting the spreadsheet, sorting the information, and accessing those formulas. Google also <a href=http://www.google.com/googlespreadsheets/tour2.html class=bluelink>included</a> the ability to invite other people to view a created spreadsheet or to edit it in real time with an accompanying chat window running.</p>
<p>The service supports Microsoft IE 6 as well as <a href=http://www.getfirefox.com class=bluelink>Firefox</a> 1.07 and up on Windows, Mac, and Linux platforms. Browser-based access over the web enables the ability to edit a spreadsheet created on Google&#8217;s service from multiple computers.</p>
<p>That remote accessibility probably precludes the service from being used on an enterprise level. The ever-present threat of Sarbanes-Oxley regulations would be cause for lots of uncomfortable audit questions should someone decide that storing information at Google doesn&#8217;t satisfy SOX requirements.</p>
<p>Google Spreadsheets looks interesting, and we&#8217;re looking forward to playing with it when Google starts inviting people into the controlled beta. But without advanced features like macros or pivot tables, Google&#8217;s newest Lab experiment just isn&#8217;t close to Microsoft Excel. </p>
<p>&#8212;</p>
<p>Add to <a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=700,height=400'); return false;"><img src=http://images1.ientrymail.com/webpronews/delicious-pic.png border=0> Del.icio.us</a> | <a href="javascript:void window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(window.location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img src=http://images1.ientrymail.com/webpronews/digg-pic.png border=0> Digg</a>  | <a href="javascript:void window.open('http://myweb2.search.yahoo.com/myresults/bookmarklet?t='+encodeURIComponent(document.title)+'&#038;u='+encodeURIComponent(window.location.href)+'&#038;tag=Google,Spreadsheet','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img src=http://images1.ientrymail.com/webpronews/yahoo-pic.png border=0> Yahoo! My Web</a> | <a href="javascript:location.href='http://www.furl.net/storeIt.jsp?u='+encodeURIComponent(document.location.href)+'&#038;t='+encodeURIComponent(document.title)+' '"><img src=http://images1.ientrymail.com/webpronews/furl-pic.png border=0> Furl</a></p>
<p>Bookmark WebProNews: <a href=http://www.webpronews.com><img src=http://images.ientrymail.com/webpronews/wpn-readit.jpg border=0></a> </p>
<p><script language=JavaScript src="http://aj.600z.com/aj/1095/0/vj?z=1&#038;dim=1088&#038;pos=15"></script></p>
<p>David Utter is a staff writer for WebProNews covering technology and business. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/google-spreadsheet-no-excel-killer-2006-06/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Spreading Out A Spreadsheet</title>
		<link>http://www.webpronews.com/google-spreading-out-a-spreadsheet-2006-06</link>
		<comments>http://www.webpronews.com/google-spreading-out-a-spreadsheet-2006-06#comments</comments>
		<pubDate>Mon, 05 Jun 2006 19:15:14 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Base]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Spreadsheet]]></category>
		<category><![CDATA[Writely]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=29687</guid>
		<description><![CDATA[June 6th will see the limited beta preview of Google's online spreadsheet program made available from the company's Google Labs development section.
]]></description>
			<content:encoded><![CDATA[<p>June 6th will see the limited beta preview of Google&#8217;s online spreadsheet program made available from the company&#8217;s Google Labs development section.</p>
<p>An AP <a href=http://www.usatoday.com/tech/products/2006-06-05-google-spreadsheet_x.htm class=bluelink>report</a> noted the pending arrival of <a href=http://www.google.com/googlespreadsheets/tour1.html class=bluelink>Google Spreadsheet</a>, which will be a free alternative to Microsoft&#8217;s Excel program. As a web-based product, it would complement Google&#8217;s <a href=http://www.writely.com class=bluelink>Writely</a> online word processor acquisition to form another piece of a Google productivity suite.</p>
<p>Right now, Google offers an email service (<a href=http://www.gmail.com class=bluelink>Gmail</a>), a calendar service (<a href=http://calendar.google.com class=bluelink>Google Calendar</a>), and an index for storing information (<a href=http://base.google.com class=bluelink>Google Base</a>). There isn&#8217;t a presentation software equivalent to PowerPoint yet, though <a href=http://pages.google.com class=bluelink>Google Page Creator</a> could host a HTML-based presentation in a pinch.</p>
<p>AP cited comments from Google Spreadsheet&#8217;s product manager, Jonathan Rochelle, on the upcoming release of the new service. He described the limited beta approach as one that gives the company time to sort out issues with the software, along with other details in the article:</p>
<p><i>
<div style=margin-left:10px;>The Mountain View, Calif.-based company planned to begin accepting sign-ups for the spreadsheet at 9 a.m. ET Tuesday through the &#8220;labs&#8221; section of its website. Rochelle wouldn&#8217;t specify how many people will be granted access to the spreadsheet application. </p>
<p>Google&#8217;s spreadsheet isn&#8217;t as sophisticated as Excel. For instance, the Google spreadsheet won&#8217;t create charts or provide a menu of controls that can be summoned by clicking on a computer mouse&#8217;s right-hand button. </p>
<p>Rochelle said the program&#8217;s main goal is to make it easier for family, friends or co-workers to gain access to the same spreadsheet from different computers at different times, enabling a group of authorized users to add and edit data without having to e-mail attachments back and forth. </p>
<p>&#8220;We are totally focused on the sharing aspect,&#8221; he said.</p></div>
<p></i><br />
Business 2.0 senior writer Om Malik <a href=http://gigaom.com/2006/06/05/did-google-go-irow/ class=bluelink>speculated</a> on his blog that Google acquired a company called <a href=http://www.irows.com class=bluelink>iRows</a> to provide the spreadsheet functionality. iRows was offline as of press time, which fueled more guessing as to its possible role in Google&#8217;s plans.</p>
<p>UPDATE!: Malik now writes that iRows is not part of Google, so that was a false alarm. </p>
<p>&#8212;</p>
<p>Add to <a href="http://del.icio.us/post" onclick="window.open('http://del.icio.us/post?v=4&#038;noui&#038;jump=close&#038;url='+encodeURIComponent(location.href)+'&#038;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=700,height=400'); return false;"><img src=http://images1.ientrymail.com/webpronews/delicious-pic.png border=0> Del.icio.us</a> | <a href="javascript:void window.open('http://digg.com/submit?phase=2&#038;url='+encodeURIComponent(window.location.href)+'&#038;ei=UTF-8','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img src=http://images1.ientrymail.com/webpronews/digg-pic.png border=0> Digg</a>  | <a href="javascript:void window.open('http://myweb2.search.yahoo.com/myresults/bookmarklet?t='+encodeURIComponent(document.title)+'&#038;u='+encodeURIComponent(window.location.href)+'&#038;tag=Google,Spreadsheet','popup','width=520px,height=420px,status=0,location=0,resizable=1,scrollbars=1,left=100,top=50',0)"><img src=http://images1.ientrymail.com/webpronews/yahoo-pic.png border=0> Yahoo! My Web</a> | <a href="javascript:location.href='http://www.furl.net/storeIt.jsp?u='+encodeURIComponent(document.location.href)+'&#038;t='+encodeURIComponent(document.title)+' '"><img src=http://images1.ientrymail.com/webpronews/furl-pic.png border=0> Furl</a></p>
<p>Bookmark WebProNews: <a href=http://www.webpronews.com><img src=http://images.ientrymail.com/webpronews/wpn-readit.jpg border=0></a> </p>
<p><script language=JavaScript src="http://aj.600z.com/aj/1095/0/vj?z=1&#038;dim=1088&#038;pos=15"></script></p>
<p>David Utter is a staff writer for WebProNews covering technology and business. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/google-spreading-out-a-spreadsheet-2006-06/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exaggerated Reports of Office&#8217;s Death</title>
		<link>http://www.webpronews.com/exaggerated-reports-of-offices-death-2006-01</link>
		<comments>http://www.webpronews.com/exaggerated-reports-of-offices-death-2006-01#comments</comments>
		<pubDate>Tue, 10 Jan 2006 21:27:38 +0000</pubDate>
		<dc:creator>Shel Holtz</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Conversation]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[Reports]]></category>
		<category><![CDATA[scoble]]></category>
		<category><![CDATA[Spreadsheet]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Writely]]></category>
		<category><![CDATA[Zoho]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=25757</guid>
		<description><![CDATA[From all quarters you can hear the pronouncements of the death of Microsoft Office.
]]></description>
			<content:encoded><![CDATA[<p>From all quarters you can hear the pronouncements of the death of Microsoft Office.</p>
<p>Steve Gillmor insisted that Office is dead in a <a href="http://gillmordaily.podshow.com/?p=21#comments" class="bluelink">podcast conversation</a> with <a href="http://scobleizer.wordpress.com/" class="bluelink">Robert Scoble</a>. The subject also came up on <a href="http://thisweekintech.com/" class="bluelink">This Week in Tech</a>. Bill Gates, the consensus goes, should be quaking in his boots since so much of Microsoft&#8217;s business is wrapped up in sales of Office. The threat is the growing number of web-based services that do pretty much what office does. </p>
<p>There&#8217;s <a href="http://gmail.com/" class="bluelink">Gmail</a> as a replacement for Outlook, for example. I talk to more and more people for whom Gmail is their only email client. Online word processors are also cropping up, like <a href="http://www.writely.com/" class="bluelink">Writely</a> and <a href="http://www.zohowriter.com/" class="bluelink">Zoho Writer</a>. Dan Bricklin (who developed VisiCalc, the first spreadsheet) has produced a <a href="http://danbricklin.com/log/2005_11_09.htm#wikicalc" class="bluelink">wiki-based spreadsheet</a> application. Who needs to install bloated software on a computer when these tools are readily available online? The tools-and your documents-are available wherever you are, the argument goes; you&#8217;re not hosed if you&#8217;re away from the computer. </p>
<p>All of which is true. There are still plenty of reasons to believe that Office will thrive for the foreseeable future, though. To begin with, high-speed Internet access just isn&#8217;t pervasive yet. It&#8217;s not available on airplanes where I do much of my work, and while it will become common, it won&#8217;t happen soon. Further, the cost of on-board access may keep many laptop users offline. And while I can get online in just about any airport, my $25-plus T*Mobile hotspit account works only in a small percentage of airports. Every airport has a deal with a different service provider and getting online is $9.95 or more in most airports, more than I&#8217;m usually willing to spend for the 15 minutes of connectivity I need to check my email or post to my blog. Now I need to pony up that money just to crank out a word-processor document? Please. </p>
<p>While all these <a href="http://en.wikipedia.org/wiki/AJAX" class="bluelink">AJAX</a>-based tools are definitely cool, they also are incomplete. I&#8217;ve played with Writely and I like it, but it doesn&#8217;t help me if I need to incorporate something as simple as a table or a graphic. Mail merge? Forget it. Further, these tools aren&#8217;t interrelated. I can&#8217;t bring data from a spreadsheet into a presentation and have it automatically update when I make a change to the spreadsheet. This probably won&#8217;t always be the case, but it is for now, and likely for a while. </p>
<p>But the biggest obstacle to adoption of these is the CIO. Most Office installations aren&#8217;t attributed to sole practitioners like me. They&#8217;re site licenses bought by businesses large and small. Each of these businesses has a security-conscious IT manager who is concerned about putting the company&#8217;s intellectual assets at risk. The notion of creating sensitive internal documents on a web-based services will undoubtedly send tremors of terror along the spines of these already-paranoid executives. </p>
<p>If the IT staff doesn&#8217;t seem like an obstacle, consider the employees who use Office. Not the high-tech, early adopting, gadget loving employees, but everyone else. I worked with a company recently where there was damn near a revolt over switching the staff from WordPerfect to Word. People threatened to quit. Others were threatened with termination if they continued to resist. It was ugly. Change is hard and slow. </p>
<p>Finally, let&#8217;s not forget that Microsoft has already taken a few tiny steps into this space with its <a href="http://www.live.com/" class="bluelink">Windows Live</a> beta. I don&#8217;t know everything Redmond has in mind, but imagine being able to work on a document in Word on your PC, then when you&#8217;re traveling, being able to pull that document up over the web using Live. It&#8217;s not an outrageous concept. NewsGator acquired FeedDemon and is planning to allow you to synch your FeedDemon RSS feeds with a NewsGator Live version. </p>
<p>So don&#8217;t look for Office to lose its relevance anytime soon. But that doesn&#8217;t mean communicators shouldn&#8217;t pay attention to tools like Writely, which could dramatically simplify the collaborative creation of documents.</p>
<p><a name="shel"></a><a href="http://blog.holtz.com/">Shel Holtz</a> is principal of <a href="http://www.holtz.com/">Holtz Communication + Technology</a> which focuses on helping organizations apply online communication capabilities to their strategic organizational communications.
<p>As a professional communicator, Shel also writes the blog <a href="http://blog.holtz.com/"><b>a shel of my former self</b></a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/exaggerated-reports-of-offices-death-2006-01/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spreadsheet Errors Add Up To Billions</title>
		<link>http://www.webpronews.com/spreadsheet-errors-add-up-to-billions-2005-04</link>
		<comments>http://www.webpronews.com/spreadsheet-errors-add-up-to-billions-2005-04#comments</comments>
		<pubDate>Mon, 25 Apr 2005 17:25:45 +0000</pubDate>
		<dc:creator>WebProNews Staff</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Errors]]></category>
		<category><![CDATA[Spreadsheet]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=17290</guid>
		<description><![CDATA[Lack of formal change management and poor use of security features could be costing businesses up to $10 billion USD per year.
]]></description>
			<content:encoded><![CDATA[<p>Lack of formal change management and poor use of security features could be costing businesses up to $10 billion USD per year.</p>
<p>Microsoft Excel, one of the most widely used computer applications on the planet, may be the focal point for business losses, according to a Bloor Research white paper composed by Philip Howard.</p>
<p>Citing data from Big Four accounting firms PricewaterhouseCoopers and KPMG, Mr. Howard identifies numerous areas where spreadsheets can host money-costing problems:</p>
<ul>
<li>Errors in data and in formulas</li>
<li>Spreadsheet security</li>
<li>Minimal auditing or change management of spreadsheet data within firms</li>
</ul>
<p>The white paper recommends the use of more stringent change management procedures by companies, including full audit trail logging and role based security. This is probably a prudent recommendation in the face of necessary Sarbanes-Oxley compliance by many firms.</p>
<p>David Utter is a staff writer for WebProNews covering technology and business. Email him <A HREF="mailto:news@ientry.com">here</A>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/spreadsheet-errors-add-up-to-billions-2005-04/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparing Search Engine Results &#8211; My Experiment</title>
		<link>http://www.webpronews.com/comparing-search-engine-results-my-experiment-2005-04</link>
		<comments>http://www.webpronews.com/comparing-search-engine-results-my-experiment-2005-04#comments</comments>
		<pubDate>Tue, 19 Apr 2005 18:23:27 +0000</pubDate>
		<dc:creator>Jason Dowdell</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Queries]]></category>
		<category><![CDATA[shopping]]></category>
		<category><![CDATA[Spreadsheet]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=17019</guid>
		<description><![CDATA[A couple months back I was covering the launch of a new shopping search engine. As part of my event coverage I was allowed to be part of the beta group, prior to the launch only a handful of people [mostly employees and family members of employees] were able to take part in the Become beta test.
]]></description>
			<content:encoded><![CDATA[<p>A couple months back I was covering the launch of a new shopping search engine. As part of my event coverage I was allowed to be part of the beta group, prior to the launch only a handful of people [mostly employees and family members of employees] were able to take part in the Become beta test.</p>
<p>Read <a href="http://www.marketingshift.com/jason-dowdell.cfm">Jason&#8217;s</a> <a href="http://www.marketingshift.com/2005/01/become-shopping-search-prelaunch.cfm">coverage</a> of <a href="http://www.become.com/">Become.com&#8217;s launch</a>.</p>
<p>But, Michael gave me an open invite and said he would welcome my feedback, good or bad. With that I said, hmmmm, can I break this? After I played around trying to break it I realized my time might be better spent doing some actual research. </p>
<p>So that&#8217;s what I did. Initially, I created a <a href="http://www.marketingshift.com/downloads/search-comparison.xls">spreadsheet</a> comparing the search results of the top search engines for a generic shopping related term &#8220;furniture&#8221; but when I saw what the data looked like I decided to dig a bit deeper and limited the scope of the engines I compared but broadened the scope of the terms I used in my comparison.</p>
<p>Before I tell you what terms I used and how I picked them I&#8217;d like to first let you in on a little secret. I had a hypothesis. Yes, that&#8217;s right, the guy that never brought is high school lab notebook to class actually had a hypothesis before he conducted an experiment. Dr. Scott McCord would be proud.</p>
<p><b>My Hypothesis On Shopping Search Result Comparison</b><br />
I believe there is no significant difference in the search results of Google, Yahoo and Microsoft. This statement applies to their search results in general but, for sake of limiting the scope of this experiment, I will be focusing soley on shopping related queries.</p>
<p><b>The Method<br />
Step 1: Getting A List of Objective Shopping Related Search Terms</b></p>
<p>First, I selected keyword phrases from Froogle&#8217;s year end Zeitgest list for 2004. This consisted of 6 different categories of queries with 10 keyword phrases per category. So that gave me a total of <b>60 terms and 600 results</b> I could use in my experiment.</p>
<p>Second, I used the <a href="http://www2.shopping.com/cdi">top 20 queries</a> on Shopping.com for each week starting in June 2004 and going through February 2005. Even though there are 20 queries for each week there are a lot of duplicate queries in those lists. So, in order to get 60 unique queries from Shopping.com I had to go all the way back to June 2004. I thought that was pretty funny in and of itself.</p>
<p>Lastly, I used the <a href="http://search.mysimon.com/top&#038;tag=mysfd.top1000">top 100 searches</a> on MySimon for the week ending February 25, 2005. This list contained 100 queries that were completly unique.</p>
<p><b>Step 2 Data Aggregation and Comparison of Search Results</b><br />
In order to determine the similarity of search results it&#8217;s important to know how unique their results are. To accomplish this, I performed 3 different sets of comparisons [because there were 3 unique sources of data used as noted in step 1 above]. Then, within each report I compared the top 10 search results of each keyword phrase per search engine. </p>
<p>If a url was found within the search results of a single search engine [engine A] but the url didn&#8217;t exist in the top 10 results of either one of the other engines [engines B, C &#038; D] then that url was considered unique for the search engine in which it was found [engine A]. This comparison could be drilled down to even further if people request that. </p>
<p>For example, I could compare the number urls in the search results of Search Engine A to the urls of Search Engine B to determine how 2 specific search engines fare against one another. For my purposes, I only wanted to compare the results each engine tested against all the engines so I&#8217;d have an unbiased report.</p>
<p><b>Let me give an example to clarify that.</b><br />
For the term furniture, the url &#8220;http://www.nhfa.org/consumer.asp&#8221; was found within the results of Become but not in the results of Google, Yahoo or MSN so this would count as a &#8220;unique result&#8221; for become but not for any of the other search engines.</p>
<p>The graphs below show the uniqueness of each search engine per keyword set. The keyword sets [explained in step 1] are labeled Froogle, Shopping.com and MySimon for clarification. Some terms overlapped between each of those 3 sources of keywords but I felt it was important to not merge the lists and run a single report for objectivity purposes. I wanted to see how each search engine fared when compared on 3 completely different sets of shopping related keyword searches without trying to create one master list.</p>
<table width="300" border="0" cellpadding="5">
<tr>
<td><img src="http://images.ientrymail.com/webpronews/froogle-results.gif" alt="Froogle comparison of 60 shopping terms and 600 results" width="300" height="205"></td>
</tr>
<tr>
<td><img src="http://images.ientrymail.com/webpronews/mysimon-results.gif" alt="mySimon.com comparison of 100 shopping terms and 1,000 results" width="300" height="205"></td>
</tr>
<tr>
<td><img src="http://images.ientrymail.com/webpronews/shopping_com-results.gif" alt="Shopping.com comparison of 60 shopping terms and 600 results" width="300" height="205"></td>
</tr>
</table>
<p>From these charts I think it&#8217;s fairly clear that the top search engines have a long way to go before they can ever be considered truly unique. On the other hand, since I started this little experiment as a way to test Become&#8217;s algorithm and whether or not they were bringing something truly unique to the table, I think the results speak for themselves.</p>
<p>When compared to the major search engines they delivered the most unique urls on every list of keywords tested. They also tended to return more deep results in their top 10 than the other engines. By deep results, I mean pages other than the homepage or main domain of a web site. </p>
<p>When I did a &#8220;spot check&#8221; of the actual quality of the results from Become versus the other Big 3 search engines I felt [I know, I know, you're not suppose to have feeling when you're conducting an experiment] the results were much better from the standpoint of shopping research. I was frustrated, however, that I couldn&#8217;t do any comparison shopping when I found a product that met my needs but I&#8217;m told that feature is currently in development.</p>
<p>On the &#8220;big picture&#8221; side of things, it&#8217;s a bit concerning that Google had the least amount of unique results when compared to the other search engines. I&#8217;m guessing this is because the other engines do indeed crawl Google&#8217;s index to seed their own from time to time and to conduct qualitative checks of their own. </p>
<p>The mentality of most search engines is &#8220;we need to beat Google team, now go do it!&#8221; and I&#8217;m certain many a search engineer has crawled the results of their competitors as a guage of how well they&#8217;re actually doing about uncovering those hidden gems [urls] of the web. </p>
<p>Another culprit of Google&#8217;s low uniqueness factor is the fact that they tend to return the primary domain of a site in their results rather than the deep pages found within a site. I&#8217;m not sure why this behaviour exists but I&#8217;ve spoken with many an seo that said their client was in the first position for their main keyword but only for the homepage and not for the page they want visitors to come to. </p>
<p>I&#8217;m predicting there will be a change along these lines at Google and the other major engines because it would result in higher conversion ratios for their natural results which means their advertisers and users would be happier as well. </p>
<p>Advertisers will think &#8220;heck, if my natural results did that good, just think how good my ppc campaign will do&#8221; and consumers will be more satisfied in general because they&#8217;d be getting better results right from the start instead of having to drill down into the sites found in the results themselves and trying to find what they were looking for all over again.</p>
<p>I hope you find this data and my interpretation of this data interesting. Feel free to comment on this post or to email me directly [marketingshift at gmail.com] with your thoughts. As always, I&#8217;m open to criticism. If you&#8217;d like a copy of the 3 lists of terms I used to conduct my experiment then let me <a href="http://www.marketingshift.com/2005/04/comparing-search-engine-results-my.cfm">know</a>.</p>
<p>Jason Dowdell is a technology entrepreneur and operates the <a href="http://www.marketingshift.com">Marketing Shift blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/comparing-search-engine-results-my-experiment-2005-04/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing a Spreadsheet</title>
		<link>http://www.webpronews.com/replacing-a-spreadsheet-2005-02</link>
		<comments>http://www.webpronews.com/replacing-a-spreadsheet-2005-02#comments</comments>
		<pubDate>Wed, 09 Feb 2005 15:53:53 +0000</pubDate>
		<dc:creator>A.P. Lawrence</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Print]]></category>
		<category><![CDATA[Spreadsheet]]></category>

		<guid isPermaLink="false">http://www.webpronews.com/?p=14713</guid>
		<description><![CDATA[Spreadsheets can be powerful tools, and particularly so in the hands of an expert user. A spreadsheet can be used to reorganize data and to extract information not otherwise available. For example, at a client site, an application report generates a listing of hourly billing, but can't give the cross-reference totals desired.
]]></description>
			<content:encoded><![CDATA[<p>Spreadsheets can be powerful tools, and particularly so in the hands of an expert user. A spreadsheet can be used to reorganize data and to extract information not otherwise available. For example, at a client site, an application report generates a listing of hourly billing, but can&#8217;t give the cross-reference totals desired.</p>
<p>The raw output looks something <a href="http://images.ientrymail.com/perlpronews/020905figure1.gif">like this.</a></p>
<p>The customer needed several breakdowns of this data, including hours by shift, and by status. The application could produce this, but only by purchasing a very expensive add-on report module. As the customer saw no other benefit to that expense, they instead loaded the report into a spreadsheet and created the needed output from that.</p>
<p>This was a complex procedure, but the responsible person understood how to do it, and provided the data for several years in that manner. Earlier this year, however, she left on maternity leave, and the job had to be taken over by someone else. The generation of the report itself also involved some complexity, and of course the spreadsheet manipulations were not only difficult but were ad-hoc: the owners might need one representation today (&#8220;What is the breakdown of status C for the WEST office in February&#8221;) and another tomorrow. The new employee just wasn&#8217;t up to the challenge.</p>
<p>I offered to provide an HTML page that could generate desired reports on demand. I did this with a Perl cgi script that is reproduced with comments here. You can get an idea of it at <a href="http://aplawrence.com/cgi-bin/billing.pl">Billing Demo</a>. The advantage of this is that anyone can run it &#8211; even the owners and managers who need the ad hoc queries. If new requirements come up, I can easily add them to the output.</p>
<p><code>#!/usr/bin/perl<br />
$SPREAD_DIR="/usr/home/pcunix/www/data/";<br />
$TITLE="Billing Breakdown";<br />
$UNPACK="A6x1A8x1A5x1A8x1A9x2A2x7A1x6A1";<br />
# The "A" strips ending blanks, "x" skips characters<br />
#<br />
$GOODLINE=60;<br />
# Length of a "good" line<br />
#<br />
$MYNAME=$ENV{REQUEST_URI};<br />
# So here, will be "/cgi-bin/billing.pl"<br />
#</p>
<p>use CGI qw(:standard);<br />
foreach $i (param) {<br />
&#038;nbsp  # set each parameter to a matching variable<br />
&#038;nbsp  foreach $j (param($i) ) {<br />
&#038;nbsp&#038;nbsp    $$i=$j;<br />
&#038;nbsp  }<br />
}<br />
#<br />
print "Content-TYPE: text/html\n\n";<br />
chdir("$SPREAD_DIR");<br />
# output beginning of html page<br />
#<br />
myhead();<br />
# if we have all data, do the selection and produce output<br />
#<br />
runit() if defined $havedata;<br />
# or if we only have the files to read, get rest of selection criteria<br />
#<br />
selecting() if defined $havefiles;<br />
#<br />
# Otherwise, here we are at the beginning<br />
#<br />
$size=0;<br />
$size++ while (&lt;*SP&gt;);<br />
$size %=5;<br />
print &lt;&lt;EOF;<br />
&lt;p&gt;<br />
&lt;form method=post action="$MYNAME"&gt;<br />
&lt;table style="margin-left: auto; margin-right: auto;" width="75%"&gt;<br />
&lt;tr&gt;&lt;td&gt;&lt;select name="file" size="$size"&gt;<br />
EOF<br />
$s="selected"; # just to force first selection<br />
foreach (&lt;*SP&gt;) {<br />
&#038;nbsp print qq(&lt;option $s value="$_"&gt;$_&lt;/option&gt;);<br />
&#038;nbsp $s="";<br />
}<br />
#<br />
print &lt;&lt;EOF;<br />
&lt;/select&gt;&lt;/table&gt;<br />
&lt;input value="Choose File" type=submit name=havefiles&gt;<br />
&lt;/form&gt;<br />
&lt;hr&gt;&lt;/body&gt;&lt;/html&gt;<br />
EOF</p>
<p>sub myhead() {<br />
#<br />
print  &lt;&lt;EOF;<br />
&lt;html&gt;&lt;head&gt;&lt;title&gt;$TITLE&lt;/title&gt;<br />
&lt;/head&gt;&lt;body&gt;<br />
&lt;h2&gt;$TITLE&lt;/h2&gt;<br />
EOF<br />
#<br />
}</p>
<p><a name="sub"></a>sub selecting {<br />
# This lets the user select the criteria for the report<br />
# We build the selections from data actually available in the<br />
# file, which makes this self-maintaining.<br />
#<br />
print "&lt;h2&gt;$file&lt;/h2&gt;";<br />
open(I,"&lt;$file");<br />
@all=&lt;I&gt;;close I;<br />
$clines=@all;<br />
print "&lt;br&gt;$clines total lines, ";<br />
$lowdate="999999";$highdate="000000";<br />
$lowdisp="";$highdisp="";<br />
%allclients=();<br />
%allbranches=();<br />
%allstatus=();<br />
$clines=0;<br />
foreach(@all) {<br />
&#038;nbsp  next if /^Branch/;<br />
&#038;nbsp  next if length($_) &lt; $GOODLINE;<br />
&#038;nbsp  chomp;<br />
&#038;nbsp  next if not $_;<br />
&#038;nbsp  $clines++;<br />
&#038;nbsp  $line=$_;<br />
&#038;nbsp  $line =~ s/^\f\r//;<br />
&#038;nbsp  chomp $line;<br />
&#038;nbsp  @foo=unpack ($UNPACK,$line);<br />
&#038;nbsp  @dt=split /\//, $foo[1];<br />
&#038;nbsp  $t=sprintf("%6d",$foo[4]);<br />
&#038;nbsp  $t="(BLANK)" if $t == 0;<br />
&#038;nbsp  $allclients{$t}=$t;<br />
&#038;nbsp  $t=uc($foo[0]);<br />
&#038;nbsp  $t=~ s/ //g;<br />
&#038;nbsp  $t="(BLANK)" if not $t;<br />
&#038;nbsp  $allbranches{$t}=$t ;<br />
&#038;nbsp  $t=uc($foo[5]);<br />
&#038;nbsp  $t=~ s/ //g;<br />
&#038;nbsp  $t="(BLANK)" if not $t;<br />
&#038;nbsp  $allstatus{$t}=$t ;<br />
&#038;nbsp  $td=sprintf("%0.2d%0.2d%0.2d",$dt[2],$dt[0],$dt[1]);<br />
&#038;nbsp  if ($td &lt; $lowdate) {<br />
&#038;nbsp&#038;nbsp    $lowdate=$td;<br />
&#038;nbsp&#038;nbsp    $lowdisp=$foo[1];<br />
&#038;nbsp  }<br />
&#038;nbsp  if ($td &gt; $highdate) {<br />
&#038;nbsp&#038;nbsp    $highdate=$td;<br />
&#038;nbsp&#038;nbsp    $highdisp=$foo[1];<br />
&#038;nbsp  }<br />
}<br />
#<br />
$size=%allclients;$size %=5;$size++;<br />
print &lt;&lt;EOF;<br />
$clines lines read<br />
&lt;p&gt;<br />
&lt;form method=post action="$MYNAME"&gt;<br />
&lt;table style="margin-left: auto; margin-right: auto;" width="75%"&gt;<br />
&lt;tr&gt;&lt;td&gt;Low date:&lt;/td&gt;&lt;td&gt;&lt;input type=text size=8 maxlength=8 name="slowdate" value=$lowdisp&gt;&lt;/td&gt;<br />
&lt;tr&gt;&lt;td&gt;High date:&lt;/td&gt;&lt;td&gt;&lt;input type=text size=8 maxlength=8 name="shighdate" value=$highdisp&gt;&lt;/td&gt;<br />
&lt;tr&gt;&lt;td&gt;Client(s)&lt;/td&gt;&lt;td&gt;&lt;select name="clients" size="$size" multiple="multiple"&gt;<br />
EOF<br />
#<br />
&#038;nbsp  print qq(&lt;option selected value="(ALL)"&gt;(ALL)&lt;/option&gt;);<br />
&#038;nbsp  print qq(&lt;option value="(BLANK)"&gt;(BLANK)&lt;/option&gt;);<br />
foreach (sort keys %allclients) {<br />
&#038;nbsp  next if /BLANK/;<br />
&#038;nbsp  print qq(\n&lt;option value="$_"&gt;$_&lt;/option&gt;);<br />
}</p>
<p>#<br />
$size=%allbranches;$size %=5;$size++;<br />
print &lt;&lt;EOF;<br />
&lt;/select&gt;<br />
&lt;tr&gt;&lt;td&gt;Branch&lt;/td&gt;&lt;td&gt;&lt;select name="branches" size="$size" multiple="multiple"&gt;<br />
EOF<br />
#<br />
&#038;nbsp  print qq(&lt;option selected value="(ALL)"&gt;(ALL)&lt;/option&gt;);<br />
foreach (sort keys %allbranches) {<br />
&#038;nbsp  print qq(\n&lt;option value="$_"&gt;$_&lt;/option&gt;);<br />
}<br />
#<br />
$size=%allstatus;$size %=5;$size++;<br />
print &lt;&lt;EOF;<br />
&lt;tr&gt;&lt;td&gt;Service Type&lt;/td&gt;&lt;td&gt;&lt;select name="servtype" size="$size" multiple="multiple"&gt;<br />
EOF<br />
#<br />
&#038;nbsp  print qq(&lt;option selected value="(ALL)"&gt;(ALL)&lt;/option&gt;);<br />
foreach (sort keys %allstatus) {<br />
&#038;nbsp  print qq(\n&lt;option value="$_"&gt;$_&lt;/option&gt;);<br />
}<br />
#<br />
print &lt;&lt;EOF;<br />
&lt;/table&gt;<br />
&lt;input type=hidden  name="lowdisp" value="$lowdisp"&gt;<br />
&lt;input type=hidden  name="highdisp" value="$highdisp"&gt;<br />
&lt;input type=hidden  name="lowdate" value="$lowdate"&gt;<br />
&lt;input type=hidden  name="highdate" value="$highdate"&gt;<br />
&lt;input type=hidden  name="file" value="$file"&gt;<br />
&lt;input type=submit name=havedata&gt;<br />
&lt;/form&gt;<br />
&lt;/body&gt;&lt;/html&gt;<br />
EOF<br />
exit 0;<br />
#<br />
}</p>
<p>sub runit {<br />
# This generates the actual output<br />
#<br />
@values = param( 'clients' );<br />
@bvalues = param( 'branches' );<br />
@svalues = param( 'servtype' );<br />
$now=time();<br />
print "&lt;p&gt;From $file, for $slowdate to $shighdate, with &lt;p&gt;Clients: ";<br />
foreach(@values) {<br />
&#038;nbsp  print "&lt;br&gt;$_";<br />
}<br />
print "&lt;p&gt;Branches";<br />
foreach(@bvalues) {<br />
&#038;nbsp  print "&lt;br&gt;$_";<br />
}<br />
print "&lt;p&gt;Service Type";<br />
foreach(@svalues) {<br />
&#038;nbsp  print "&lt;br&gt;$_";<br />
}<br />
#<br />
#<br />
open(I,"$file");@all=&lt;I&gt;;close I;<br />
@dt=split /\//,$slowdate;<br />
$lowdate=sprintf("%d%0.2d%0.2d",$dt[2],$dt[0],$dt[1]);<br />
@dt=split /\//,$shighdate;<br />
$highdate=sprintf("%d%0.2d%0.2d",$dt[2],$dt[0],$dt[1]);</p>
<p>$gt=0;$tct=0;<br />
foreach (@all) {<br />
&#038;nbsp  next if /^Branch/;<br />
&#038;nbsp  next if length($_) &lt; $GOODLINE;<br />
&#038;nbsp  $line=$_;<br />
&#038;nbsp  $line =~ s/^\f\r//;<br />
&#038;nbsp  chomp $line;<br />
&#038;nbsp  @foo=unpack ($UNPACK,$line);<br />
&#038;nbsp  @dt=split /\//, $foo[1];<br />
&#038;nbsp  $thisdate=sprintf("%d%0.2d%0.2d",$dt[2],$dt[0],$dt[1]);<br />
&#038;nbsp  next if $thisdate &lt; $lowdate;<br />
&#038;nbsp  next if $thisdate &gt; $highdate;<br />
&#038;nbsp  foreach (@foo) {<br />
&#038;nbsp   s/ //g;<br />
&#038;nbsp }<br />
&#038;nbsp $t=sprintf("%0.5d",$foo[4]);<br />
&#038;nbsp $t="(BLANK)" if not $t;<br />
&#038;nbsp  $cmatch=0;<br />
foreach (@values) {<br />
&#038;nbsp   $cmatch=1 if /ALL/;<br />
&#038;nbsp   last if $cmatch;<br />
&#038;nbsp   $tt=$_;<br />
&#038;nbsp   $tt="(BLANK)" if not $tt;<br />
&#038;nbsp   $cmatch=1 if ($tt == $t);<br />
 }<br />
 next if not $cmatch;<br />
&#038;nbsp  $cmatch=0;<br />
 foreach (@bvalues) {<br />
&#038;nbsp   $cmatch=1 if /ALL/;<br />
&#038;nbsp   last if $cmatch;<br />
&#038;nbsp   $t=uc($foo[0]);<br />
&#038;nbsp   $tt=uc($_);<br />
&#038;nbsp   $t=~ s/ //g;<br />
&#038;nbsp   $tt=~ s/ //g;<br />
&#038;nbsp  $t="(BLANK)" if not $t;<br />
&#038;nbsp  $tt="(BLANK)" if not $tt;<br />
&#038;nbsp&#038;nbsp   $cmatch=1 if ($tt eq $t);<br />
 }<br />
 next if not $cmatch;<br />
&#038;nbsp  $cmatch=0;<br />
 foreach (@svalues) {<br />
&#038;nbsp   $tt=uc($_);<br />
&#038;nbsp   $cmatch=1 if /ALL/;<br />
&#038;nbsp   last if $cmatch;<br />
&#038;nbsp   $t=uc($foo[5]);<br />
&#038;nbsp   $t=~ s/ //g;<br />
&#038;nbsp   $tt=~ s/ //g;<br />
&#038;nbsp  $t="(BLANK)" if not $t;<br />
&#038;nbsp  $tt="(BLANK)" if not $tt;<br />
&#038;nbsp&#038;nbsp   $cmatch=1 if ($tt eq $t);<br />
 }<br />
 next if not $cmatch;<br />
 push @detail, "&lt;tr&gt;";<br />
 foreach (@foo) {<br />
  push @detail, "&lt;td&gt;$_&lt;/td&gt;\n";<br />
 }<br />
 $tct++;<br />
 $gt+=$foo[2];<br />
 $pline=join "\|",@foo;<br />
 $cbystatus="$foo[4]|$foo[6]";<br />
 $shiftbystatus="$foo[4]|$foo[6]|$foo[7]";<br />
 $bystatus{$cbystatus}+=$foo[2];<br />
 $countbystatus{$cbystatus}++;<br />
 $countbyshift{$shiftbystatus}++;<br />
}<br />
&#038;nbsp  printf("&lt;hr&gt;&lt;p&gt;Total records %d Hours  %.2f &lt;/td&gt;\n", $tct,$gt);<br />
#<br />
print &lt;&lt;EOF;<br />
&lt;hr&gt;<br />
&lt;table&gt;<br />
EOF<br />
#<br />
print  "&lt;tr&gt;&lt;td&gt;&lt;b&gt;Sum of Hours&lt;/b&gt;&lt;/td&gt;";<br />
print  "&lt;tr&gt;&lt;td&gt;Client&lt;/td&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;Sum&lt;/td&gt;\n";<br />
$gt=0;<br />
foreach (sort keys %bystatus) {<br />
&#038;nbsp  @t=split /\|/,$_;<br />
&#038;nbsp  printf("&lt;tr&gt;&lt;td&gt;$t[0]&lt;/td&gt;&lt;td&gt;$t[1]&lt;/td&gt;&lt;td align=right&gt;%.2f&lt;/td&gt;\n",$bystatus{$_});<br />
&#038;nbsp  $gt+=$bystatus{$_};<br />
}<br />
&#038;nbsp  print "&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=right&gt;-------&lt;/td&gt;";<br />
&#038;nbsp  printf("&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=right&gt;%.2f&lt;/td&gt;\n",$gt);</p>
<p>print  "&lt;/table&gt;&lt;hr&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Count&lt;/b&gt;&lt;/td&gt;\n";<br />
&#038;nbsp  print  "&lt;tr&gt;&lt;td&gt;Client&lt;/td&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;Count&lt;/td&gt;\n";<br />
$tct=0;<br />
foreach (sort keys %countbystatus) {<br />
&#038;nbsp  @t=split /\|/,$_;<br />
&#038;nbsp  $tct+=$countbystatus{$_};<br />
&#038;nbsp  print  "&lt;tr&gt;&lt;td&gt;$t[0]&lt;/td&gt;&lt;td&gt;$t[1]&lt;/td&gt;&lt;td align=right&gt;$countbystatus{$_}&lt;/td&gt;\n";<br />
}<br />
&#038;nbsp  print  "&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=right&gt;-----&lt;/td&gt;\n";<br />
&#038;nbsp  printf("&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=right&gt;%d&lt;/td&gt;\n",$tct);</p>
<p>print  "&lt;/table&gt;&lt;hr&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;By Shift&lt;/b&gt;&lt;/td&gt;\n";<br />
&#038;nbsp  print  "&lt;tr&gt;&lt;td&gt;Shift&lt;/td&gt;&lt;td&gt;Client&lt;/td&gt;&lt;td&gt;Status&lt;/td&gt;&lt;td&gt;Count&lt;/td&gt;\n";<br />
$tct=0;<br />
foreach (sort keys %countbyshift) {<br />
&#038;nbsp  @t=split /\|/,$_;<br />
&#038;nbsp  $tct+=$countbyshift{$_};<br />
&#038;nbsp  print  "&lt;tr&gt;&lt;td&gt;$t[2]&lt;/td&gt;&lt;td&gt; $t[0]&lt;/td&gt;&lt;td&gt;  $t[1]&lt;/td&gt;&lt;td align=right&gt; $countbyshift{$_}&lt;/td&gt;\n";<br />
}<br />
&#038;nbsp  print  "&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=right&gt;-----&lt;/td&gt;\n";<br />
&#038;nbsp  printf("&lt;tr&gt;&lt;td&gt;Total&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=right&gt;%d&lt;/td&gt;\n",$tct);<br />
#<br />
print &lt;&lt;EOF;<br />
&lt;/table&gt;<br />
&lt;hr&gt;<br />
&lt;p&gt;Detail Lines<br />
&lt;table style="margin-left: auto; margin-right: auto;" width="75%"&gt;<br />
EOF<br />
foreach (@detail) {<br />
&#038;nbsp  print;<br />
}<br />
print &lt;&lt;EOF;<br />
&lt;/table&gt;<br />
&lt;hr&gt;<br />
&lt;hr&gt;<br />
&lt;/body&gt;&lt;/html&gt;<br />
EOF<br />
exit 0;<br />
#<br />
}</code></p>
<p>Download <a href="ftp://aplawrence.com/pub/billing.pl">Billing.pl source</a></p>
<p>*Originally published at <a href="http://www.aplawrence.com">APLawrence.com</a></p>
<p>A.P. Lawrence provides SCO Unix and Linux consulting services http://www.pcunix.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webpronews.com/replacing-a-spreadsheet-2005-02/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 1/47 queries in 0.026 seconds using memcached
Object Caching 654/779 objects using memcached

Served from: webpronews.com @ 2012-02-13 14:46:30 -->
