網頁 貼吧 文章 作者 工作  
網頁搜尋
 
 愛PO吧 >> 蒼井空免費影片 >> 瀏覽文章
回覆 加入我的最愛 與好友分享

[引用]Excel開啟CSV檔的花式技巧

本被文章 0 次, 共有回覆 15  
0
 
0
引用自DARKTHREAD-TIPS-Excel開啟CSV檔的花式技巧

[hr]

xyz資訊工坊
CSV檔是很普遍的Grid式資料匯出格式,而很多人也都知道Excel可以直接將CSV檔開啟成試算表。不過稱作Comma Separated Value的CSV,除了"用逗號將值隔開"之外,還有一些進階的花式技巧。例如:

1. 如果是內含逗號的字串值,可以用雙引號將字串包起來,例如: 886,"Taipei, Taiwan"
2. 如果在雙引號中的字串中又包含了雙引號,則可以遵循VB/VBScript的慣例,用兩個雙引號代替。例如: "12'30"""-->12'30"
3. 用Excel開啟CSV時,Excel會自動判斷值的性質,進行資料轉換。比較煩的是,明明編號是007,就算用了雙引號包夾成"007",Excel還是會將它轉換成7,即使在Excel中重新調整它的儲存格式為字串,也無法還原回007。
這裡分享一個小技巧,我們可以用="007"的宣告方式,強制指定字串值,Excel就不會雞婆將它轉成數字。而這個技巧還可以再延伸,甚至可以用=SUM(B2:B5)的寫法,指定儲存格的運算式。範例如下:

[Updated 2007/02/01]
在公司分享這篇KB後,同事Daniel也提供了他的寶貴經驗: 看來Excel只接受ANSI/BIG5編碼的CSV檔,如果將CSV檔存成Unicode編碼,Excel就無法識別出逗號,而會將整列資料視為同一個值。
謝謝Daniel的分享!

[hr]

另外…Excel不默認支持UTF8的CSV文件
因此excel打開utf-8中文的csv百分百會發生這種問題。

有兩種解決辦法:
1. 可以先用notepad打開csv,另存為ANSI編碼,再用Excel打開
2. 先打開空的Excel,然後在料->取得外部資料->從文字檔→選擇csv文件,在導入資料對話框中選好UTF-8的編碼(你會發現默認是ANSI),就可以了。

以下是我的jsp程式碼,網頁為utf-8編碼,文件以big-5編碼 已用真實數據用excel2007開過,非亂碼
=======================================================================================
<%@page language="java" import="java.io.*,java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=big5"%>
<%
Calendar calendar=new GregorianCalendar();
String date = (calendar.get(Calendar.YEAR))+""+(calendar.get(Calendar.MONTH)+1)+""+calendar.get(Calendar.DATE); //取日期
String fname="Data"+date+".csv";//以日期為檔名存檔
response.setContentType("application/vnd.ms-excel;charset=big5");//指定回應的文件型態為"excel";編碼為big-5
response.addHeader("Content-disposition","attachment; filename="+ fname);
response.setStatus(response.SC_OK);//設定回應的狀態為ok
response.flushBuffer();
String CVStxt=request.getParameter("txt");
if ("".equals(CVStxt) || null==CVStxt)xyz//如果上頁接收的值為空值
CVStxt="";
else{
CVStxt=new String (CVStxt.getBytes("ISO8859_1"),"UTF-8");
CVStxt=CVStxt.replaceAll(";","\r\n");}
out.clearBuffer();
out.println(CVStxt);
%>

逛上一篇:   逛下一篇:

作者: lwklvint
  (2010-04-30 20:51)
推薦文章: 將本文章推薦到【百度收藏】 將本文章推薦到【YouPush】 將本文章推薦到【udn共享書籤】 將本文章推薦到【Fiigo】書籤

 本文章共有回覆 15 篇,分 1 頁
 聲明:以上內容不代表本站立場,且內容由網友發表提供,若有爭議或違法由發表者承擔,本站將不負責連帶責任,謝謝。

 IPoBar  愛PK  愛遊戲  愛online
新手教學 客服中心 站務公告 交換連結 合作提案 關於我們
 
版權所有©ipobar Ltd., All Rights Reserved.
論壇內會員言論僅代表個人觀點,不代表本站同意其說法,本討論區不承擔由該言論所引起的法律責任