眾所周知,csv其實就是乙個文字檔案,占用的空間很小,行與行之間使用 ','分割,可以用office開啟,那這麼簡單的乙個東西會有什麼問題呢?
/**
* 字串處理和賦值
** @return
*/public string handlerstringandconvert
(string string)
因為csv檔案預設是以逗號分割的,如果你的文字中存在逗號,則就會自動分割,怎麼辦呢?就是要把逗號進行轉義。
/**
* 字串中間攜帶逗號,csv檔案需要進行轉義
** @param str
* @return
*/public string handlecomma
(string str)
str =
"\""
+ handlestring +
"\"";}
}return str;
}
有的時候我們需要在csv的內部展示多行資料,怎麼辦呢?只需要在尾部追加換行符即可。
string str =
"你的文字"
.concat
("\r\n"
);
這是軟體自設的問題,正常我們在輸入數字前加上 』 ,然後我們輸入的資料就會我們正常輸入的內容,為了避免這種情況的發生,我們只需要在文字的後面追加乙個製表符即可。
/**
* 字串處理和賦值
** @return
*/public string handlerstringandconvert
(string string)
這裡和上面保持一致,但是這麼做是完美的嘛?如果自己測試會發現,你雖然成功的讓自己的文字變成了想要的樣子,但是如果你用記事本或者notepad++開啟,你會發現每乙個帶上這個方法的字段後面都會帶上乙個tab,看著就像是乙個空格,如果刪除你的數字依舊會丟失前面的0。這個問題在網上找了很多答案,幾乎都是
string str = str +((
char)(
9)).
tostring()
;
但是我試了,我連大寫的tostring在哪我都不知道,所以呢?如果你想要保住0就需要加上"\t",不想保持0那就可以不加,如果二者都要,你可能得瘋掉,搞了好久,都搞不定。
最後推薦乙個方式生成csv,基於註解實現csv的匯出。
可以參考:
這個工具呢,有乙個問題,就是生成的文字時不帶雙引號的,也就是說你用記事本開啟,不會有引號的存在,如果需要,我做了一些調整:
//定義雙引號
private
static
final
char double_quotes =
'"';
/** * 拼接cvs**一行資料
* @param filedannotationmap
* @return
*/private
static
string getcsvoneline
(map
filedannotationmap, t linedate, class<
?> dataclass)
//4轉譯處理(放在el解析後,防止el解析邏輯出現么蛾子(el轉譯後出現csv邏輯符號))
linestrbuilder.
(double_quotes)
; linestrbuilder.
(datacolumn)
; linestrbuilder.
(double_quotes)
; linestrbuilder.
(csv_column_separator);}
catch
(nosuchfieldexception
| illegalacces***ception e)
", e);}
});return linestrbuilder.
(csv_rn)
.tostring()
;}/*** 自己寫乙個拼接,每個元素在生成的時候,前後加上雙引號即可
*/private
static string initcsvheaderline
(map
filedannotationmap)
private
static string join
(string string)
systemtap embedded C 踩坑筆記
官方文件 systemtap的embedded c中,不能 include 也不能用printf和print。那怎麼列印呢?用stap printf。用法與printf一樣。還可以訪問cript中的全域性變數。官方文件中的示例 global var global var2 100 function ...
Aggregation MongoDB踩坑記錄
對某些篩選條件進行分頁查詢,開始每一頁的有效data都不足pagesize,最後發現,aggregation 的pipeline是有先後順序的。錯誤 agg aggregation.newaggregation aggregation.skip curpage 1 pagesize aggregat...
feign踩坑 通過Feign上傳檔案(踩坑)
引入依賴 org.springframework.cloud spring cloud starter openfeign 服務提供者 restcontroller public inte ce fileuploadservice commonresultuploadfile requestpart...