這是一個長久以來的問題,就是使用html轉成xls表,原本補0的資料在欄位內會被自動吃掉。
就是原本的資料是 "00123" 轉出後資料變成 "123"了。
在google大神的幫助下,找到了 http://blog.xuite.net/alenliu/test/27513469 網誌介紹了一些方法終於得以不再讓資料亂變了。
使用的方法即為 使用 style處理語法如下:
這是最簡單的方法,在內設好,轉出的表格內容資料就不會再亂變了。
2011年6月16日 星期四
如果想要在showModalDialog拷貝文字的話
我爬過文,有人建議將window.showModalDialog()改為用window.open(),使用起來跟我需求有出入,所以最後沒有用。因為window.open()在javascript內會直接跑到下段程式去,而我是要回傳資料的,所以就沒用他了。
一開始我用了document.all["t1"].contentEditable = "True",讓內容變為設計模式,但這不僅可以拷貝,還可以修改,默認值為"inherit"。但會造成物件內的文字可以被任意的更動或刪除。於是我加了個判斷輸入的函數,如下:
雖然解決了鍵盤輸入的問題,但滑鼠可以將文字任意拖動的問題卻依然存在。
最後只好改以 <textarea cols=60 rows=4 readonly >的方式來實現文字的拷貝。
一開始我用了document.all["t1"].contentEditable = "True",讓內容變為設計模式,但這不僅可以拷貝,還可以修改,默認值為"inherit"。但會造成物件內的文字可以被任意的更動或刪除。於是我加了個判斷輸入的函數,如下:
/*屏蔽Backspace,輸入內容不屏蔽*/
function document.onkeydown()
{
//限制 text, textarea 以外物件不回應的鍵盤操作
if(document.activeElement.type == "text" document.activeElement.type == "textarea")
{
if ((event.keyCode==116) //屏蔽 F5 刷新鍵
(event.ctrlKey && event.keyCode==82))//Ctrl + R
{
event.keyCode=0;
event.returnValue=false;
}
}
else
{
if (
(event.keyCode==8) //屏蔽退格刪除鍵
(event.keyCode==46) //屏蔽delete刪除鍵
(event.keyCode==116) //屏蔽 F5 刷新鍵
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
}
}
function document.onkeydown()
{
//限制 text, textarea 以外物件不回應的鍵盤操作
if(document.activeElement.type == "text" document.activeElement.type == "textarea")
{
if ((event.keyCode==116) //屏蔽 F5 刷新鍵
(event.ctrlKey && event.keyCode==82))//Ctrl + R
{
event.keyCode=0;
event.returnValue=false;
}
}
else
{
if (
(event.keyCode==8) //屏蔽退格刪除鍵
(event.keyCode==46) //屏蔽delete刪除鍵
(event.keyCode==116) //屏蔽 F5 刷新鍵
(event.ctrlKey && event.keyCode==82)){ //Ctrl + R
event.keyCode=0;
event.returnValue=false;
}
}
}
雖然解決了鍵盤輸入的問題,但滑鼠可以將文字任意拖動的問題卻依然存在。
最後只好改以 <textarea cols=60 rows=4 readonly >的方式來實現文字的拷貝。
2010年8月24日 星期二
ACCESS啟動設定問題
ACCESS啟動設定問題
參考網址: http://www.programmer-club.com.tw/ShowSameTitleN/access/598.html
請問我在ACCSEE啟動設定裡將工具列跟資料庫選項關掉
開啟時只有啟動表單
但是我想要修改程式碼
找不到選項可以將啟動選項打開
請問一下怎麼辦?
ans:
先壓住Shift鍵,再開啟access程式或mdb檔案
ps.如有要求輸入密碼,請在輸完密碼按[確認]前按住[Shift]鍵,直到開出正常的工具列及資料庫選項顯示。
參考網址: http://www.programmer-club.com.tw/ShowSameTitleN/access/598.html
請問我在ACCSEE啟動設定裡將工具列跟資料庫選項關掉
開啟時只有啟動表單
但是我想要修改程式碼
找不到選項可以將啟動選項打開
請問一下怎麼辦?
ans:
先壓住Shift鍵,再開啟access程式或mdb檔案
ps.如有要求輸入密碼,請在輸完密碼按[確認]前按住[Shift]鍵,直到開出正常的工具列及資料庫選項顯示。
2009年12月22日 星期二
javascript日期檢查
相關網址:JAVAScript中使用正則表達式檢測日期格式
<script type="text/javascript">
//彭嘉宏的日期格式檢查(使用正則式)
function dateVerify(date){
var reg = /^(\d{4})([\/,-])(\d{1,2})\2(\d{1,2})$/;
var r = date.match(reg);
if(r==null) return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);
return newStr==date;
}
//ChanPing的日期格式檢查(使用Date()判斷)
function dateVerify2(date){
var d= new Date(date.split("-").join("/"));
var r= date.split("-").join("/").split("/");
return d.getDate()==r[2]; //判斷日
}
</script>
<input type="text" name="t1" style="background-color:#FFFFFF;" value="2009-02-30" />
<input type=button value="判斷日期dateVerify()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify(t1.value))" >
<input type=button value="判斷日期dateVerify2()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify2(t1.value))" >
<script type="text/javascript">
//彭嘉宏的日期格式檢查(使用正則式)
function dateVerify(date){
var reg = /^(\d{4})([\/,-])(\d{1,2})\2(\d{1,2})$/;
var r = date.match(reg);
if(r==null) return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate();
date=r[1]+r[2]+((r[3]-1)+1)+r[2]+((r[4]-1)+1);
return newStr==date;
}
//ChanPing的日期格式檢查(使用Date()判斷)
function dateVerify2(date){
var d= new Date(date.split("-").join("/"));
var r= date.split("-").join("/").split("/");
return d.getDate()==r[2]; //判斷日
}
</script>
<input type="text" name="t1" style="background-color:#FFFFFF;" value="2009-02-30" />
<input type=button value="判斷日期dateVerify()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify(t1.value))" >
<input type=button value="判斷日期dateVerify2()" style="color=blue; font-size=10pt;width=130pt" onclick="alert(this.value+' is '+dateVerify2(t1.value))" >
2009年11月18日 星期三
ASP 在 IE瀏覽器中,Session遺失問題的處理
參考網址:http://support.microsoft.com/kb/323752
情況:
在IE瀏覽器內無法正常取得Session值,但在Firefox內卻可以正常的取出該Session值。
處理參考一 ( 在ASP程式內標頭加入下面語法 )
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
response.addHeader "P3P","CP='CAO PSA OUR'"
response.CacheControl = "no-cache"
處理參考二 ( 在IIS內設定 [HTTP表頭] )
1. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
2. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
3. 按一下 [ HTTP 表頭 ] 索引標籤。
4. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
5. 輸入 自訂標頭名稱(C):, P3P ,然後輸入 自訂標頭值(U):, CP="CAO PSA OUR"。
下列為參考網址內截出的內容:(為避免網址遺失的問題)
徵狀
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explore...
loadTOCNode(1, 'symptoms');
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explorer 6 中您嘗試在這些圖文框中設定任何 Cookie 會遺失。 這是最常遇到為遺失的動態伺服器網頁 (ASP) 」 或 「 ASP.NET Web 應用程式中的工作階段狀態。 您嘗試存取 工作階段 物件,您希望存在,而傳回空白的字串中的變數。您也看到這個問題在圖文框的內容中如果您的網頁使用的網域名稱系統 (DNS) 名稱之間使用的網際網路通訊協定 (IP) 位址的替代。
發生的原因
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內...
loadTOCNode(1, 'cause');
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內一個框架或子視窗,子網站會被視為第三方內容。 網際網路檔案總管會使用預設的隱私權設定 中 的無訊息式地拒絕寄件者的協力廠商網站的 Cookie。
回此頁最上方
解決方案
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,...
loadTOCNode(1, 'resolution');
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,Internet Explorer 會允許設定 Cookie。請造訪下列 MSDN 網站令人滿意,並不令人滿意的原則程式碼的完整清單: 在 Internet Explorer 6 中的隱私權http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp (http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp) 簡單的壓縮原則符合此條件,如下:P3P: CP="CAO PSA OUR"
這個程式碼範例會示範您的網站提供您自己的連絡人資訊 (CAO),任何分析的資料是唯一"pseudo-analyzed 」,表示資料給您的線上人物代表,而非您實體的身分 (PSA),連接的並且您的資料未提供任何外部機構,這些機構使用 (OUR) 的存取。您可以設定此標頭,如果您在 ASP 網頁中使用 Response.AddHeader 方法。 在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。 您可以使用 [IIS 管理嵌入式管理單元 (inetmgr),若要新增至靜態的檔案。 請遵循這些步驟來此標頭加入靜態檔案:
6. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
7. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
8. 按一下 [ HTTP 表頭 ] 索引標籤。
9. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
10. 輸入標頭名稱, P3P ,然後壓縮原則的字串輸入 CP =...,其中"...是您的壓縮原則的適當程式碼。
或者,Internet Explorer 使用者可以修改其隱私權設定,這樣會提示他們接受協力廠商的內容。 下列步驟顯示如何修改隱私權設定:
1. 執行的 Internet Explorer。
2. 按一下 [ 工具 ],然後按一下 [ 網際網路選項 。
3. 按一下 [ 隱私 ] 索引標籤,然後按一下 [ 進階 ]。
4. 按一下以選取 [ 覆寫自動 Cookie 處理 ] 核取方塊。
5. 若要以便 ASP 和 ASP.NET 工作階段 Cookie 設定按一下以選取 [ 永遠允許工作階段 Cookie ] 核取方塊。
6. 若要接收任何類型的第三方 Cookie 提示,] 按一下 [ 提示 第三方 Cookie ] 清單中。
情況:
在IE瀏覽器內無法正常取得Session值,但在Firefox內卻可以正常的取出該Session值。
處理參考一 ( 在ASP程式內標頭加入下面語法 )
response.expires = 0
response.expiresabsolute = Now() - 1
response.addHeader "pragma","no-cache"
response.addHeader "cache-control","private"
response.addHeader "P3P","CP='CAO PSA OUR'"
response.CacheControl = "no-cache"
處理參考二 ( 在IIS內設定 [HTTP表頭] )
1. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
2. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
3. 按一下 [ HTTP 表頭 ] 索引標籤。
4. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
5. 輸入 自訂標頭名稱(C):, P3P ,然後輸入 自訂標頭值(U):, CP="CAO PSA OUR"。
下列為參考網址內截出的內容:(為避免網址遺失的問題)
徵狀
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explore...
loadTOCNode(1, 'symptoms');
如果您實作一個 FRAMESET 其圖文框指向您的夥伴或內部網路上網路上的其他網站,但您使用不同的最上層網域名稱您可能會發現在 Internet Explorer 6 中您嘗試在這些圖文框中設定任何 Cookie 會遺失。 這是最常遇到為遺失的動態伺服器網頁 (ASP) 」 或 「 ASP.NET Web 應用程式中的工作階段狀態。 您嘗試存取 工作階段 物件,您希望存在,而傳回空白的字串中的變數。您也看到這個問題在圖文框的內容中如果您的網頁使用的網域名稱系統 (DNS) 名稱之間使用的網際網路通訊協定 (IP) 位址的替代。
發生的原因
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內...
loadTOCNode(1, 'cause');
Internet Explorer 6 引入隱私喜好設定 (P3P) 專案的平台的支援。 P3P 標準筆記如果一個 FRAMESET 或父視窗的參照另一個網站內一個框架或子視窗,子網站會被視為第三方內容。 網際網路檔案總管會使用預設的隱私權設定 中 的無訊息式地拒絕寄件者的協力廠商網站的 Cookie。
回此頁最上方
解決方案
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,...
loadTOCNode(1, 'resolution');
您可以在 P3P 壓縮原則標頭加入您的子內容,而您可以宣告沒有惡意的動作會執行與使用者的資料。 如果 Internet Explorer 偵測到令人滿意的原則,Internet Explorer 會允許設定 Cookie。請造訪下列 MSDN 網站令人滿意,並不令人滿意的原則程式碼的完整清單: 在 Internet Explorer 6 中的隱私權http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp (http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp) 簡單的壓縮原則符合此條件,如下:P3P: CP="CAO PSA OUR"
這個程式碼範例會示範您的網站提供您自己的連絡人資訊 (CAO),任何分析的資料是唯一"pseudo-analyzed 」,表示資料給您的線上人物代表,而非您實體的身分 (PSA),連接的並且您的資料未提供任何外部機構,這些機構使用 (OUR) 的存取。您可以設定此標頭,如果您在 ASP 網頁中使用 Response.AddHeader 方法。 在 ASP.NET 中,您可以使用 Response.AppendHeader 方法。 您可以使用 [IIS 管理嵌入式管理單元 (inetmgr),若要新增至靜態的檔案。 請遵循這些步驟來此標頭加入靜態檔案:
6. 按一下 [ 開始 ]、 按一下 [ 執行 ],然後再輸入 inetmgr ]。
7. 在 [左邊的瀏覽] 頁面按一下 [適當的檔案或目錄,在您想要新增標頭,以滑鼠右鍵按一下的檔案,然後按一下 [ 內容 您網站上]。
8. 按一下 [ HTTP 表頭 ] 索引標籤。
9. 在 [ 自訂 HTTP 表頭 ] 群組方塊中,按一下 [ 新增 ]。
10. 輸入標頭名稱, P3P ,然後壓縮原則的字串輸入 CP =...,其中"...是您的壓縮原則的適當程式碼。
或者,Internet Explorer 使用者可以修改其隱私權設定,這樣會提示他們接受協力廠商的內容。 下列步驟顯示如何修改隱私權設定:
1. 執行的 Internet Explorer。
2. 按一下 [ 工具 ],然後按一下 [ 網際網路選項 。
3. 按一下 [ 隱私 ] 索引標籤,然後按一下 [ 進階 ]。
4. 按一下以選取 [ 覆寫自動 Cookie 處理 ] 核取方塊。
5. 若要以便 ASP 和 ASP.NET 工作階段 Cookie 設定按一下以選取 [ 永遠允許工作階段 Cookie ] 核取方塊。
6. 若要接收任何類型的第三方 Cookie 提示,] 按一下 [ 提示 第三方 Cookie ] 清單中。
2009年10月15日 星期四
SQL處理中英文字串長度的範例
SQL處理中英文字串長度的範例
-- 計算中英文字串長度
DECLARE @string varchar(50)
set @string='一二三456七八9十'
select @string '字串', len(@string) '中英字數', datalength(@string) '資料長度', datalength(@string)-len(@string) '中文字數'
-- 截取中英文字串長度
DECLARE @string varchar(50), @l int
set @string='一二三456七八9十'
set @l=8
select substring(@string,1,@l) '取字數', case when datalength(@string)>8 then convert(varchar(8),@string)+'...' else convert(varchar(8),@string) end '取資料數'
select substring(@string,1,@l)
-- 無法使用下列寫法,主要在「convert(varchar(@l),@string)」內的『varchar(@l)』括號內只可使用數值,無法使用變數 >"<。
select substring(@string,1,@l), case when datalength(@string) > @l then convert(varchar(@l),@string)+'...' else convert(varchar(@l),@string) end
-- 計算中英文字串長度
DECLARE @string varchar(50)
set @string='一二三456七八9十'
select @string '字串', len(@string) '中英字數', datalength(@string) '資料長度', datalength(@string)-len(@string) '中文字數'
-- 截取中英文字串長度
DECLARE @string varchar(50), @l int
set @string='一二三456七八9十'
set @l=8
select substring(@string,1,@l) '取字數', case when datalength(@string)>8 then convert(varchar(8),@string)+'...' else convert(varchar(8),@string) end '取資料數'
select substring(@string,1,@l)
-- 無法使用下列寫法,主要在「convert(varchar(@l),@string)」內的『varchar(@l)』括號內只可使用數值,無法使用變數 >"<。
select substring(@string,1,@l), case when datalength(@string) > @l then convert(varchar(@l),@string)+'...' else convert(varchar(@l),@string) end
2009年10月14日 星期三
訂閱:
文章 (Atom)



