<?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>VinylFox &#187; Spreadsheet</title>
	<atom:link href="http://www.vinylfox.com/tag/spreadsheet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vinylfox.com</link>
	<description>The Playground of VinylFox (Shea Frederick)</description>
	<lastBuildDate>Thu, 29 Jul 2010 16:37:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>DataDrop &#8211; Drag Grid Data in From a Spreadsheet</title>
		<link>http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/</link>
		<comments>http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 20:12:44 +0000</pubDate>
		<dc:creator>Shea Frederick</dc:creator>
				<category><![CDATA[ExtJS]]></category>
		<category><![CDATA[ExtJS Plugins]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[Spreadsheet]]></category>

		<guid isPermaLink="false">http://www.vinylfox.com/?p=473</guid>
		<description><![CDATA[I was stewing about an example that Andrea Giammarchi came up with, it was so cool &#8211; very cool &#8211; but totally useless in the form it was in (from a UX standpoint). It was a proof of concept, so I wasn&#8217;t expecting it to be useful right away, in fact all I was expecting [...]]]></description>
			<content:encoded><![CDATA[<p>I was stewing about an example that <a href="http://webreflection.blogspot.com/" target="_blank">Andrea Giammarchi</a> came up with, it was so cool &#8211; very cool &#8211; but totally useless in the form it was in (from a UX standpoint). It was a proof of concept, so I wasn&#8217;t expecting it to be useful right away, in fact all I was expecting is that it give me an idea &#8211; and it did.</p>
<h2>The Concept</h2>
<p>If we could drag our tabular data into grids from other programs we could circumvent the need to upload a data file to a web server to be read and parsed, then spit back out to our browser in a readable format. Anyone who has ever had to parse Excel files on the server side knows how much of a pain it is, we might be lucky if we get a CSV file or some other simple format, but in the real world the end user running their spreadsheet program has no clue what simple tabular data is.</p>
<p>Using the same concept from Andrea&#8217;s example page, we can create a zone within the grid which will accept dragged data from a spreadsheet. The behavior that we are taking advantage of is the way in which an html textarea will accept dragged data from a spreadsheet and format it as tab delimited data.</p>
<h2>The Plugin</h2>
<p>My first version of the plugin is rough around the edges, but works in all browsers (minus Opera) very reliably. Being a plugin, the usage is straight forward, there are no configuration values that need to be defined at this time.</p>
<p><textarea class="js" cols="100" name="code">{<br />
	xtype: &#8216;grid&#8217;,<br />
	&#8230;,<br />
	plugins: [Ext.ux.grid.DataDrop],<br />
	&#8230;<br />
}</textarea></p>
<p>Check out the screencast below to see it in action &#8211; I am dragging rows of data from OpenOffice Calc directly to an ExtJS Grid.</p>
<p><object class="embeddedObject" classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" width="650" height="638"><param name="movie" value="http://content.screencast.com/users/VinylFox/folders/Jing/media/a27e44bc-8901-4c9e-8e4d-cbae429baf5b/jingswfplayer.swf"></param><param name="quality" value="high"></param><param name="bgcolor" value="#FFFFFF"></param><param name="flashVars" value="containerwidth=650&#038;containerheight=638&#038;thumb=http://content.screencast.com/users/VinylFox/folders/Jing/media/a27e44bc-8901-4c9e-8e4d-cbae429baf5b/FirstFrame.jpg&#038;loaderstyle=jing&#038;content=http://content.screencast.com/users/VinylFox/folders/Jing/media/a27e44bc-8901-4c9e-8e4d-cbae429baf5b/2009-09-03_1236.swf&#038;blurover=false"></param><param name="allowFullScreen" value="true"></param><param name="scale" value="showall"></param><param name="allowScriptAccess" value="always"></param><param name="base" value="http://content.screencast.com/users/VinylFox/folders/Jing/media/1df86ee9-458e-474f-9e6f-b6f63ff37eba/"></param><embed class="embeddedObject" src="http://content.screencast.com/users/VinylFox/folders/Jing/media/a27e44bc-8901-4c9e-8e4d-cbae429baf5b/jingswfplayer.swf" quality="high" bgcolor="#FFFFFF" width="650" height="638" type="application/x-shockwave-flash" allowScriptAccess="always" flashVars="containerwidth=650&#038;containerheight=638&#038;thumb=http://content.screencast.com/users/VinylFox/folders/Jing/media/a27e44bc-8901-4c9e-8e4d-cbae429baf5b/FirstFrame.jpg&#038;loaderstyle=jing&#038;content=http://content.screencast.com/users/VinylFox/folders/Jing/media/a27e44bc-8901-4c9e-8e4d-cbae429baf5b/2009-09-03_1236.swf&#038;blurover=false" allowFullScreen="true" base="http://content.screencast.com/users/VinylFox/folders/Jing/media/1df86ee9-458e-474f-9e6f-b6f63ff37eba/" scale="showall"></embed></object></p>
<h2>The Code</h2>
<p>As always, I have setup a <a href="http://code.google.com/p/ext-ux-datadrop/" target="_blank">Google code</a> site for this. Please <a href="http://code.google.com/p/ext-ux-datadrop/source/browse/trunk/src/" target="_blank">browse the source</a> to get the plugin code. I don&#8217;t have an example page, but the <a href="/docs/?class=Ext.ux.grid.DataDrop" target="_blank">documentation is online</a></p>
<p><a href="http://code.google.com/p/ext-ux-datadrop/source/browse/trunk/src/Ext.ux.DataDrop.js" target="_blank">Ext.ux.DataDrop.js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.vinylfox.com/datadrop-drag-grid-data-from-spreadsheet/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>
