2010年9月10日 星期五

【轉貼】使用java 轉成excel 文件

【转帖】使用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文件的例子,廢話少說,我們開始吧!

輸入簡體中文寫成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===================================

  <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#')#">

匯出至excel 檔案 網頁header設定

MX:
<cfheader name="Content-Disposition" value="attachment; filename=OneMoreSpreadSheet.xls">
<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>

讀取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>

判斷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參數的正則

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:]]+)*" >

CFQUERYPARAM使用說明

CFQUERYPARAM使用說明
 
1.文字                         
     <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 tickBeginTime = gettickcount()>
 .................(預計算時間的程式)
 <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)#&nbsp;&nbsp;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")>

cfm出現亂碼

注意網頁編碼方式!!
可加入 
<cfcontent type="text/html; charset=big5">

2010年9月7日 星期二

CMYK圖檔格式轉為JPG


設定圖片大小,CMYK轉成RBG

<cfset width = 110>
<cfset height = 140>

2010年8月3日 星期二

IE看不到的jpeg

現 IE 在讀取特定 JPEG 圖檔的時候會無法顯示,但圖片下載回來後使用各式看圖工具都可以正常顯示,唯獨 IE 無法瀏覽。
通常的作法都是用繪圖軟體將該圖檔打開,重新存檔一次就可以在 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日 星期二

去網頁顯示空白

<cfsetting enablecfoutputonly="yes">
<cfprocessingdirective suppresswhitespace="yes">
......
</cfprocessingdirective>

base64加解密

加密:
<cfset base64_cgistring = ToBase64("test123")>

解密:
<cfset str_list= "#tostring(tobinary(base64_cgistring))#">

官網連結

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">
<cfset old_list = "">
<cfloop condition="#listlen(old_list)# lt #num#">
<cfset R_num=randrange(1,num)>
<cfif ListFind(old_list,R_num) lte 0>
<cfset old_list=listappend(old_list,"#R_num#")>
</cfif>
</cfloop>
<cfreturn old_list >
</cffunction>

判斷function 是否有重複

判斷function 是否有重複引用,如果沒有再作 include 否則會有錯誤

<cfif not IsDefined("function名稱") or not IsCustomFunction(function名稱)>
<cfinclude template="/module/inc_encoding.cfm">
</cfif>

檢查檔案是否存在

<cfif FileExists(ExpandPath('account.cfm'))>
     <cfinclude template="account.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;/*以英文小寫顯示*/

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

ThickBox

JQuery UI

ThickBox是多功能性的,它提供有對於圖像、內置框架、內嵌內容、AJAX內容 等變化, 在點擊連結後能在網頁形成美觀的透明層展示,在改變瀏覽器大小或捲動捲軸時都能保持居中.可以讓畫面底色呈現黑灰色.

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==>內容的主要描述,通常搜尋引擎都會以網頁的前廿五字做為網頁內容摘要

網頁轉址

<script language="JavaScript">
location.href="http://www.msn.com.tw";
</script>
<noscript>
<meta http-equiv="refresh" content="0; URL=http://www.msn.com.tw">
</noscript>



2010年5月19日 星期三

DIV不透明

使用 CSS Alpha 篩選條件來設定背景色彩的 DIV 白,並將不透明度設定為 [0 (零),這會導致完全透明的 DIV,其中包含內容。

若要不透明,需設定 alpha(opacity=100)

※背景色彩設定白色請用 background-color: white;

清除背景顏色設定

background-color 屬性設置元素的背景顏色

background-color 屬性為元素設置一種純色。這種顏色會填充元素的內容、內邊距和邊框區域,擴展到元素邊框的外邊界(但不包括外邊距)。如果邊框有透明部分(如虛線邊框),會透過這些透明部分顯示出背景色。

transparent 值
盡管在大多數情況下,沒有必要使用 transparent。不過如果您不希望某元素擁有背景色,同時又不希望用戶對瀏覽器的顏色設置影響到您的設計,那麽設置 transparent 值還是有必要的。

ex:
<table id="show_table" width="100" border="0" style="background-color:transparent;"></table>

2010年5月18日 星期二

img遺失時預設圖片

<img src="bbb.gif" hspace="3" onError="this.src='images/fakeLOGO.gif'"  width="119"  height="43">
 onError="this.src='images/fakeLOGO.gif'"

開啟或關閉cookie

開啟或關閉cookie
選 [工具] => [網際網路選項] => [隱私權]=>[進階] 關閉Cookie就可以了
===================================================================
如果是要避免某特定網站寫入cookie
步驟如下
1.IE
工具->網際網路選項->隱私權->網站->封鎖
2.Firefox
[options]->[Privacy]->[Cookies]->[Exceptions]
某此版本會是
[Preferences]->[Privacy]->[Cookies]->[Exceptions]