更好用的excel國際化多語言匯出

2021-09-09 04:34:12 字數 1591 閱讀 2358

不知道大家在開發中有沒有遇到過『excel匯出』的需求,反正我最近寫了不少這種功能,剛開始利用poi,一行行的手動塞資料,生成excel,而且還有國際化需求,比如:標題欄有一列,使用者切換成"簡體中文"時, 匯出的標題應該是『使用者姓名』,而切換到"英文"時, 匯出的標題應該變成『customer name』(當然還有一些細節 ,比如英文環境,日期通常是 "月/日/年"格式,而中文格式是"年-月-日")

偶爾幹一兩次還行,經常這麼手動處理,純體力活就太枯燥了,在乙個小夥伴的抱怨下,到網上搜尋了下,看看有沒有更省力的通用解決方案,還真找到了,比如excel4j (向原作者致敬,提供這麼方便的開源專案)。大致原理是基於註解,用法很簡單:

public class student2
打個註解就行,匯出一行搞定:

listlist = new arraylist<>();

...excelutils.getinstance().exportobjects2excel(list, student2.class, true, "學生資訊", true, base_path + "student2.xlsx");

不過原作者並沒有提供國際化多語言的功能,於是順著這個思路,略為修改了一下,再定義乙個多語言的註解:

/**

* 國際化標題註解

* * @author 菩提樹下的楊過

*/@retention(retentionpolicy.runtime)

@target(elementtype.field)

public @inte***ce i18nfield

@data

public class student2 )

private long id;

@excelfield(title = "姓名", order = 2)

@i18nfield(titles = )

private string name;

...

}

匯出時指定語言:

listlist = new arraylist<>();

...excelutils.getinstance().exportobjects2excel(list, student2.class, true, "student", true, base_path + "student2-en.xlsx", "en-us");

excelutils.getinstance().exportobjects2excel(list, student2.class, true, "學生資訊", true, base_path + "student2-cn.xlsx", "zh-cn");

效果如下:

中文匯出:

英文匯出:

android國際化(多語言)

1.很大程度上,為什麼我們能如此方便的實現國際化 解析度匹配等?主要就是得益於 android 中這種獨特的資源管理方式。程式設計師的 可以不直接和資源發生關係。android 中,我們通常通過 r 檔案提供的索引來間接的引用某乙個資源。而如何維護資源索引和真正的資源之間的關係,這個活,卻是 and...

springboot多語言國際化

實現localresolve介面,定義messageservice bean 自定義messages服務,指定國際化配置路徑 return bean name messagesource public resourcebundlemessagesource getmessageresource co...

iOS APP多語言開發(國際化)

static dispatch once t oncetoken dispatch once oncetoken,objc setassociatedobject nsbundle mainbundle bundle,language nsbundle bundlewithpath nsbundle...