【转帖】使用java类生成excel文件范例 http://www.mmug.cn/blogs/index.cfm?sPart=SB&iFid=203&sDayNow=2006-03-20&sAuthor=tianji
在台湾mmug的關於java的POI讀取excel文件的例子,發表后點擊率倍增,很高興有這麽多人關注我的帖子,今天在自己的blog中決定分享給大家一個關餘POI與資料庫交互,生成excel文件的例子,廢話少說,我們開始吧!
2010年9月10日 星期五
輸入簡體中文寫成csv檔,使用excel開啟顯示簡體
CFMX:
<cfcontent type="text/html; charset=UTF-8">
<cfif form.t_name neq "">
<cfset csv_path="show/" >
<cfset tmp_output ="浙江天台县今日通报发现天台县下路王村">
<cfscript>
writeFile = ("#csv_path#test_js3.csv");
jFile = createobject("java", "java.io.File").init(writeFile);
jStream = createobject("java", "java.io.FileOutputStream").init(jFile);
jStream.write(239);
jStream.write(187);
jStream.write(191);
jWriter = createobject("java", "java.io.OutputStreamWriter");
jWriter.init(jStream, "UTF-8");
jWriter.write(tmp_output);
jWriter.flush();
jWriter.close();
jStream.close();
</cfscript>
</cfif>
=======================CF 5===================================
<cfcontent type="text/html; charset=UTF-8">
<cfif form.t_name neq "">
<cfset csv_path="show/" >
<cfset tmp_output ="浙江天台县今日通报发现天台县下路王村">
<cfscript>
writeFile = ("#csv_path#test_js3.csv");
jFile = createobject("java", "java.io.File").init(writeFile);
jStream = createobject("java", "java.io.FileOutputStream").init(jFile);
jStream.write(239);
jStream.write(187);
jStream.write(191);
jWriter = createobject("java", "java.io.OutputStreamWriter");
jWriter.init(jStream, "UTF-8");
jWriter.write(tmp_output);
jWriter.flush();
jWriter.close();
jStream.close();
</cfscript>
</cfif>
=======================CF 5===================================
<cftry>
<cfset jStream=createobject("java","java.io.FileOutputStream")>
<cfset jStream=jStream.init("show_u8.js")>
<cfset jWriter=createobject("java","java.io.OutputStreamWriter")>
<cfset jWriter=jWriter.init(jStream,"UTF-8")>
<cfset a=jWriter.write(Chr(239))>
<cfset a=jWriter.write(Chr(187))>
<cfset a=jWriter.write(Chr(191))>
<cfset a=jWriter.write(jstring)>
<cfset a=jWriter.flush()>
<cfset a=jWriter.close()>
<cfset a=jStream.close()>
<cfcatch></cfcatch>
</cftry>
<cfset jStream=createobject("java","java.io.FileOutputStream")>
<cfset jStream=jStream.init("show_u8.js")>
<cfset jWriter=createobject("java","java.io.OutputStreamWriter")>
<cfset jWriter=jWriter.init(jStream,"UTF-8")>
<cfset a=jWriter.write(Chr(239))>
<cfset a=jWriter.write(Chr(187))>
<cfset a=jWriter.write(Chr(191))>
<cfset a=jWriter.write(jstring)>
<cfset a=jWriter.flush()>
<cfset a=jWriter.close()>
<cfset a=jStream.close()>
<cfcatch></cfcatch>
</cftry>
取query某欄位所有內容值存入list
<cfquery name="sel_page" datasource="#odbc#">
select id,title from show
</cfquery>
<cfset title_list = #ValueList(sel_page.title)#>
<cfoutput> title_list = # title_list#</cfoutput>
網頁下載檔案
<cfheader name="Content-disposition" value="attachment;filename=info_pps/#sel_file.pps_file#">
<cfhttp url="#expandPath('goods_A1.htm')#" method="GET" resolveurl="YES">
<cfcontent type="application/x-mspowerpoint" file = "#expandPath('info_pps/#sel_file.pps_file#')#">
<cfhttp url="#expandPath('goods_A1.htm')#" method="GET" resolveurl="YES">
<cfcontent type="application/x-mspowerpoint" file = "#expandPath('info_pps/#sel_file.pps_file#')#">
匯出至excel 檔案 網頁header設定
MX:
<cfheader name="Content-Disposition" value="attachment; filename=OneMoreSpreadSheet.xls">
<cfcontent type="application/x-msexcel; charset=utf-16" reset="No">
<cfcontent type="application/x-msexcel; charset=utf-16" reset="No">
5:
<CFCONTENT TYPE="application/vnd.ms-excel" >
XML子節點判斷是否有內容
<cfset nxml_content = xml>
<cfset nxml = XmlParse(nxml_content)>
<cfif IsDefined("nxml.ma.image")>
<cfset n_image64 = Trim(nxml.ma.image.xmltext)>
<cfset nxml_length = ArrayLen(nxml.ma.itemn)>
</cfif>
<cfset nxml = XmlParse(nxml_content)>
<cfif IsDefined("nxml.ma.image")>
<cfset n_image64 = Trim(nxml.ma.image.xmltext)>
<cfset nxml_length = ArrayLen(nxml.ma.itemn)>
</cfif>
讀取xml
<!---使用java元件讀取xml --->
<cfscript>
xmlReaderPool = CreateObject("JAVA", "XMLReaderPool");
poolXMLReader = XMLReaderPool.getInstance();
xmlList = poolXMLReader.getXMLReader();
xmlList.doParse(returnvalue);
xmlRecordCount= xmlList.getAttributes("ROOT.RECORDCOUNT");
pageRowCount = xmlList.getItemNums("ROOT.ITEM");
</cfscript>
<cfscript>
xmlReaderPool = CreateObject("JAVA", "XMLReaderPool");
poolXMLReader = XMLReaderPool.getInstance();
xmlList = poolXMLReader.getXMLReader();
xmlList.doParse(returnvalue);
xmlRecordCount= xmlList.getAttributes("ROOT.RECORDCOUNT");
pageRowCount = xmlList.getItemNums("ROOT.ITEM");
</cfscript>
判斷get參數的正則式
<cfdump var='#REFindNoCase("([A-Za-z]+=[0-9]+&)+([A-Za-z]+=[0-9]+)$","#cgi.query_string#")#'>
<cfoutput>#REFindNoCase("^[A-Za-z]+=[0-9]+$","tas=78911&ddd=2342")#</cfoutput>
判斷get參數的正則式
<cfoutput>#REFindNoCase("^[A-Za-z]+=[0-9]+$","tas=78911&ddd=2342")#</cfoutput>
判斷get參數的正則式
email判斷正則式
cfm 5 email 正則式: (兩個是一樣的)
<cfset reg = "[[:alnum:]]+([-+.’][a-zA-Z0-9]+)*@[a-zA-Z0-9]+([-+.’][[:alpha:]]+)*\.[[:alpha:]]{2,}([-+.’][[:alpha:]]+)*" >
<cfset reg = "[[:alnum:]]+([-+.’][[:alnum:]]+)*@[[:alnum:]]+([-+.’][[:alpha:]]+)*\.[[:alpha:]]{2,}([-+.’][[:alpha:]]+)*" >
<cfset reg = "[[:alnum:]]+([-+.’][[:alnum:]]+)*@[[:alnum:]]+([-+.’][[:alpha:]]+)*\.[[:alpha:]]{2,}([-+.’][[:alpha:]]+)*" >
CFQUERYPARAM使用說明
CFQUERYPARAM使用說明
1.文字
<cfset indcat = "電子">
<cfquery name="select" DATASOURCE="database">
...
where indcat = <CFQUERYPARAM value = "#indcat#" CFSQLType = "CF_SQL_VARCHAR">
</cfquery>
<cfset indcat = "電子">
<cfquery name="select" DATASOURCE="database">
...
where indcat = <CFQUERYPARAM value = "#indcat#" CFSQLType = "CF_SQL_VARCHAR">
</cfquery>
讀csv檔並做(中文)筆劃排序
<cffile action = "read" file = "#expandpath('csv.csv')#" variable = "csv_show" >
<cfset myQuery = QueryNew("name,main, joblist, bloglink ,sowf")><!----定義新的Query---->
<cfset newRow = QueryAddRow(myQuery,ListLen(csv_show,chr(13)&chr(10)))> <!----給新的Query預設Row大小----->
<cfset myQuery = QueryNew("name,main, joblist, bloglink ,sowf")><!----定義新的Query---->
<cfset newRow = QueryAddRow(myQuery,ListLen(csv_show,chr(13)&chr(10)))> <!----給新的Query預設Row大小----->
計算程式所執行的時間
<cfset tickBeginTime = gettickcount()>
.................(預計算時間的程式)
<cfset tickEndTime = gettickcount()>
<cfset tickTime =tickEndTime-tickBeginTime>
Time #tickTime#<br>
.................(預計算時間的程式)
<cfset tickEndTime = gettickcount()>
<cfset tickTime =tickEndTime-tickBeginTime>
Time #tickTime#<br>
計算目前已使用的記憶體
<cfset mysys = CreateObject("java", "java.lang.Runtime")>
<cfset runtime = mysys.getRuntime()>
<cfset freeMemory = runtime.freeMemory() / 1024 / 1024>
<cfset totalMemory = runtime.totalMemory() / 1024 / 1024>
<cfset free_str="Free=#Round(freeMemory)# Total=#Round(totalMemory)#">
Memory #free_str#<br>
<cfset runtime = mysys.getRuntime()>
<cfset freeMemory = runtime.freeMemory() / 1024 / 1024>
<cfset totalMemory = runtime.totalMemory() / 1024 / 1024>
<cfset free_str="Free=#Round(freeMemory)# Total=#Round(totalMemory)#">
Memory #free_str#<br>
傳值至Oracle 型別為date
日期:
to_date('#DateFormat(BIRTHDAY,'YYYY/MM/DD')#','YYYY/MM/DD')
日期+時間
appear_date between
to_date('#DateFormat(form.app_startDate,'YYYY/MM/DD')# 00:00:00','YYYY/MM/DD HH24:MI:ss')
and
to_date('#DateFormat(form.app_endDate,'YYYY/MM/DD')# 23:59:59','YYYY/MM/DD HH24:MI:ss')
取消換行符號
取消換行符號 --
Chr(13)為歸位字元
Chr(10)為換行字元
<cfset tagtext = replace(tagtext,chr(13)&chr(10),"","all")>
Chr(13)為歸位字元
Chr(10)為換行字元
<cfset tagtext = replace(tagtext,chr(13)&chr(10),"","all")>
2010年9月7日 星期二
2010年8月3日 星期二
IE看不到的jpeg
現 IE 在讀取特定 JPEG 圖檔的時候會無法顯示,但圖片下載回來後使用各式看圖工具都可以正常顯示,唯獨 IE 無法瀏覽。
通常的作法都是用繪圖軟體將該圖檔打開,重新存檔一次就可以在 IE 看到了。在 IE/Firefox 中看不見圖片的真正原因出在於這些 JPEG 圖檔是用 CMYK 模式存檔的,而 IE 只能讀取 RGB 模式的圖檔,所以就會導致圖片無法開啟了。
如果你是用 Photoshop 的話,可以在存檔的時候選擇 Save for web 也可以將圖檔強制轉成 RGB 模式。
之前也有介紹過一篇 在 Linux 下批次轉換 JPEG 圖片尺寸的方法 ,你也可以用 ImageMagick 中的 mogrify 工具轉換圖片,如下指令:
通常的作法都是用繪圖軟體將該圖檔打開,重新存檔一次就可以在 IE 看到了。在 IE/Firefox 中看不見圖片的真正原因出在於這些 JPEG 圖檔是用 CMYK 模式存檔的,而 IE 只能讀取 RGB 模式的圖檔,所以就會導致圖片無法開啟了。
如果你是用 Photoshop 的話,可以在存檔的時候選擇 Save for web 也可以將圖檔強制轉成 RGB 模式。
之前也有介紹過一篇 在 Linux 下批次轉換 JPEG 圖片尺寸的方法 ,你也可以用 ImageMagick 中的 mogrify 工具轉換圖片,如下指令:
mogrify -colorspace RGB Your_CMYK_Image.jpg
2010年5月25日 星期二
cookie設定
- 永遠存在
<cfcookie name = "id_no" value = "123456" expires = "Never">
- 刪除cookie
<cfcookie name = "id_no" value = "" expires = "Now">
2010年5月24日 星期一
自訂Function
- 亂數排序
<cffunction name="fun_rand" returntype="String" output="false">
<cfargument name="num" type="numeric" required="true"></cffunction>
<cfset old_list = "">
<cfloop condition="#listlen(old_list)# lt #num#">
<cfset R_num=randrange(1,num)></cfloop>
<cfif ListFind(old_list,R_num) lte 0>
<cfset old_list=listappend(old_list,"#R_num#")></cfif>
<cfreturn old_list >
判斷function 是否有重複
判斷function 是否有重複引用,如果沒有再作 include 否則會有錯誤
<cfif not IsDefined("function名稱") or not IsCustomFunction(function名稱)>
<cfinclude template="/module/inc_encoding.cfm">
</cfif>
<cfif not IsDefined("function名稱") or not IsCustomFunction(function名稱)>
<cfinclude template="/module/inc_encoding.cfm">
</cfif>
CSS 參數的應用
◆基本語法屬性一覽:
<STYLE type="text/css">
<!--
BODY {
/*文字屬性*/
FONT-SIZE: 9pt;/*字體大小*/
FONT-FAMILY: Arial;/*字型設定*/
FONT-WEIGHT: normal;/*正常樣式*/
FONT-WEIGHT: bold;/*字體加粗*/
FONT-WEIGHT: bolder;/*正常稍粗*/
FONT-WEIGHT: lighter;/*字體稍細*/
FONT-STYLE: normal;/*正常樣式*/
FONT-STYLE: italic;/*文字斜體*/
FONT-STYLE: oblique;/*文字斜體*/
FONT-VARIANT: normal;/*正常樣式*/
FONT-VARIANT: small-caps;/*將小寫轉換為小字體的大寫字母*/
COLOR: #1f3f3f;/*字體色彩*/
VERTICAL-ALIGN: top;/*設定垂直對齊位置(對齊同列 top | middle | bottom | baseline)*/
VERTICAL-ALIGN: super;/*上標文字*/
VERTICAL-ALIGN: sub;/*下標文字*/
VERTICAL-ALIGN: text-top;/*文字頂端*/
VERTICAL-ALIGN: text-bottom;/*文字底部*/
TEXT-DECORATION: none;/*可設無*/
TEXT-DECORATION: line-through;/*加刪除線*/
TEXT-DECORATION: overline;/*加上劃線*/
TEXT-DECORATION: underline;/*加下劃線*/
TEXT-TRANSFORM: none;/*可設無*/
TEXT-TRANSFORM: capitalize;/*首字以英文大寫顯示*/
TEXT-TRANSFORM: uppercase;/*以英文大寫顯示*/
TEXT-TRANSFORM: lowercase;/*以英文小寫顯示*/
<STYLE type="text/css">
<!--
BODY {
/*文字屬性*/
FONT-SIZE: 9pt;/*字體大小*/
FONT-FAMILY: Arial;/*字型設定*/
FONT-WEIGHT: normal;/*正常樣式*/
FONT-WEIGHT: bold;/*字體加粗*/
FONT-WEIGHT: bolder;/*正常稍粗*/
FONT-WEIGHT: lighter;/*字體稍細*/
FONT-STYLE: normal;/*正常樣式*/
FONT-STYLE: italic;/*文字斜體*/
FONT-STYLE: oblique;/*文字斜體*/
FONT-VARIANT: normal;/*正常樣式*/
FONT-VARIANT: small-caps;/*將小寫轉換為小字體的大寫字母*/
COLOR: #1f3f3f;/*字體色彩*/
VERTICAL-ALIGN: top;/*設定垂直對齊位置(對齊同列 top | middle | bottom | baseline)*/
VERTICAL-ALIGN: super;/*上標文字*/
VERTICAL-ALIGN: sub;/*下標文字*/
VERTICAL-ALIGN: text-top;/*文字頂端*/
VERTICAL-ALIGN: text-bottom;/*文字底部*/
TEXT-DECORATION: none;/*可設無*/
TEXT-DECORATION: line-through;/*加刪除線*/
TEXT-DECORATION: overline;/*加上劃線*/
TEXT-DECORATION: underline;/*加下劃線*/
TEXT-TRANSFORM: none;/*可設無*/
TEXT-TRANSFORM: capitalize;/*首字以英文大寫顯示*/
TEXT-TRANSFORM: uppercase;/*以英文大寫顯示*/
TEXT-TRANSFORM: lowercase;/*以英文小寫顯示*/
2010年5月21日 星期五
getYear() FF3 異常
var dateObj = new Date();
var thisYear = dateObj.getFullYear();
var old_thisYear = dateObj.getYear();
FF3.0.6
alert( thisYear ); // 2009
alert( old_thisYear ) ; // 109
IE
alert( thisYear ); // 2009
alert( old_thisYear ) ; // 2009
var thisYear = dateObj.getFullYear();
var old_thisYear = dateObj.getYear();
FF3.0.6
alert( thisYear ); // 2009
alert( old_thisYear ) ; // 109
IE
alert( thisYear ); // 2009
alert( old_thisYear ) ; // 2009
2010年5月20日 星期四
META功用
- 顯示及排列中文:
<META http-equiv="Content-Type" content="text/html; charset=big5">
說明:
Content-Type==>文件內容格式
;==>CONTENT內要作的每件事" ",分別以分號區隔
text/html==>純文字/超文字
charset==>字元組為中文繁體大五碼,如用iso-2022-jp是指日文
- 讓搜索引擎容易找到:
<META NAME="KeyWords" CONTENT="網頁,網站製作,程式設計,程式">
<META NAME="KeyWords" CONTENT="html,javascript,js">
說明:
網頁內文關鍵字,可使用中、英文均可
- 關於網站的內容描述
<META NAME="Description" CONTENT="電腦相關程式語言與網頁設定小技巧和一堆有的沒的雜事與紀錄">
說明:
Description==>內容的主要描述,通常搜尋引擎都會以網頁的前廿五字做為網頁內容摘要
2010年5月19日 星期三
清除背景顏色設定
background-color 屬性設置元素的背景顏色
background-color 屬性為元素設置一種純色。這種顏色會填充元素的內容、內邊距和邊框區域,擴展到元素邊框的外邊界(但不包括外邊距)。如果邊框有透明部分(如虛線邊框),會透過這些透明部分顯示出背景色。
transparent 值
盡管在大多數情況下,沒有必要使用 transparent。不過如果您不希望某元素擁有背景色,同時又不希望用戶對瀏覽器的顏色設置影響到您的設計,那麽設置 transparent 值還是有必要的。
ex:
<table id="show_table" width="100" border="0" style="background-color:transparent;"></table>
background-color 屬性為元素設置一種純色。這種顏色會填充元素的內容、內邊距和邊框區域,擴展到元素邊框的外邊界(但不包括外邊距)。如果邊框有透明部分(如虛線邊框),會透過這些透明部分顯示出背景色。
transparent 值
盡管在大多數情況下,沒有必要使用 transparent。不過如果您不希望某元素擁有背景色,同時又不希望用戶對瀏覽器的顏色設置影響到您的設計,那麽設置 transparent 值還是有必要的。
ex:
<table id="show_table" width="100" border="0" style="background-color:transparent;"></table>
2010年5月18日 星期二
開啟或關閉cookie
開啟或關閉cookie
選 [工具] => [網際網路選項] => [隱私權]=>[進階] 關閉Cookie就可以了
===================================================================
如果是要避免某特定網站寫入cookie
步驟如下
1.IE
工具->網際網路選項->隱私權->網站->封鎖
2.Firefox
[options]->[Privacy]->[Cookies]->[Exceptions]
某此版本會是
[Preferences]->[Privacy]->[Cookies]->[Exceptions]
步驟如下
1.IE
工具->網際網路選項->隱私權->網站->封鎖
2.Firefox
[options]->[Privacy]->[Cookies]->[Exceptions]
某此版本會是
[Preferences]->[Privacy]->[Cookies]->[Exceptions]
訂閱:
文章 (Atom)