惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Help Net Security
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
Vercel News
Vercel News
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
Hugging Face - Blog
Hugging Face - Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
云风的 BLOG
云风的 BLOG

博客园 - spoony

Flex4 Skinning 4: 留言板示例 Flex4 Skinning 2: 皮肤协议 Flex4 Skinning 1: 自定义一个简单按钮的皮肤 Air应用程序访问本地数据库 [通篇转载]调程序的小女孩 Adobe ColdFusion Reports(5) Adobe ColdFusion Reports(4) Adobe ColdFusion Reports(3) Adobe ColdFusion Reports(2) Adobe ColdFusion Reports(1) Adobe ColdFusion Charts(3) Adobe ColdFusion Charts(2) Adobe ColdFusion Charts(1) Adobe ColdFusion读写Microsoft Office Excel数据(3) Adobe ColdFusion读写Microsoft Office Excel数据(1) Flex与DotNET WebService交互(2) Flex与DotNET WebService交互(1) Ext JS Designer 1.0.5 发布 设置Flex Builder中FlashPlayer调试版本 - spoony - 博客园
Adobe ColdFusion读写Microsoft Office Excel数据(2)
spoony · 2010-01-22 · via 博客园 - spoony

  上一篇随笔主要简单演示了数据读取操作,要想编辑Excel中数据的功能也很容易实现。代码几乎同读取操作一样,显著的不同是要将cfspreadsheet标签的action属性设置为write,设定所要编辑的单元格位置信息并且调用spreadsheetSetCellValue方法进行编辑。

  我们继续使用上一篇随笔中的那个示例Excel文件Sales.xls, 如图1.

图 1

     注意这个文件第2行第2列的数字现在是“50000”。新建一个ColdFusion Page, 并将下面的代码添加进去。

<!--- Read spreadsheet --->
<cfspreadsheet action="read"
	src="Sales.xls"
	name="sObj">

<!--- Set cell value --->
<cfset spreadsheetSetCellValue(sObj, 60000, 2, 2)>

<!--- Write spreadsheet --->
<cfspreadsheet action="write"
	overwrite="true"
	filename="Sales.xls"
	name="sObj">

   在浏览器中运行。然后再次打开Sales.xls文件。可以发现第2行第2列数据已经变成了“60000”。如图2.

图 2

  前面的示例用了最简单的方式介绍了用ColdFusion编辑Excel文件的方式。为了使操作更加灵活方便,笔者再来演示一个稍微复杂的例子。

  首先新建一个ColdFusion Page, 与第一篇随笔对应,取名为write.cfm. 添加下面的代码用来新建一个cfform, 注意将form的action属性设置为"#CGI.script_name#".

<!--- Form used to set entry infomation --->
<h3>Set specific cell with specific value</h3>
<cfform action="#CGI.script_name#">
<br>
Region: 
<cfselect name="row">
	<option value="2">Northeast</option>
	<option value="3">East</option>
	<option value="4">Central</option>
	<option value="5">South</option>
	<option value="6">Southwest</option>
	<option value="7">West</option>
</cfselect>
<br>
<br>
Quarter: 
<cfselect name="col">
	<option value="2">Q1</option>
	<option value="3">Q2</option>
	<option value="4">Q3</option>
	<option value="5">Q4</option>
</cfselect>
<br>
<br>
Sales: $<cfinput type="text" name="sales" required="true" validate="integer">
<br>
<br>
<cfinput type="submit" name="btnSave" value="Save">
<br>
</cfform>

     在浏览器中运行一下,看到效果如图3, 其外观与普通html form没有什么区别。

图 3

  接下来在页面顶部定义三个变量,分别用来表示要设置的单元格行,列,值信息。

<!--- Init vars --->
<cfparam name="FORM.row" default="">
<cfparam name="FORM.col" default="">
<cfparam name="FORM.sales" default="">

  最后添加前面讲过的读写方法,来实现对Excel文件的操作。

<!--- Form submitted --->
<cfif FORM.row NEQ ""
	AND FORM.col NEQ ""
	AND FORM.sales NEQ "">
	<!--- Read spreadsheet --->
	<cfspreadsheet action="read"
		src="Sales.xls"
		name="sObj">
	<!--- Set cell value --->
	<cfset spreadsheetSetCellValue(sObj, FORM.sales, FORM.row, FORM.col)>
	<!--- Write spreadsheet --->
	<cfspreadsheet action="write"
		overwrite="true"
		filename="Sales.xls"
		name="sObj">
</cfif>

  这样,就可以对特定的单元格的数据进行编辑了。