package ExcelUtil;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;
import java.util.HashMap;
import java.util.Iterator;
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import ExcelUtil.entity.Entity;
public class Test {
static HashMap<String, Entity> list = new HashMap<String, Entity>();
public static final String DEFAULT_LANGUAGE_FLAG = "values";
public static final String[] LANGUAGE = { "values",
"values-zh-cn",
"values-en-rGB",
"values-de-rDE",
"values-fr-rFR", // values-fr-rFR
"values-es-rES", "values-it-rIT", "values-pt-rPT", "values-nl-rNL",
"values-sv-rSE", "values-no-rNO", "values-fi-rFI", "values-da-rDK",
"values-hu-rHU", "values-pl-rPL", "values-cs-rCZ", "values-tr-rTR",
"values-ru-rRU", "values-el-rGR", "values-ro-rRO", "android_id"
};
// 国家/地区 语言缩写代码 查询备用
// 国家/地区 语言代码 国家/地区 语言代码
// 简体中文(中国) zh-cn 繁体中文(台湾地区) zh-tw
// 繁体中文(香港) zh-hk 英语(香港) en-hk
// 英语(美国) en-us 英语(英国) en-gb
// 英语(全球) en-ww 英语(加拿大) en-ca
// 英语(澳大利亚) en-au 英语(爱尔兰) en-ie
// 英语(芬兰) en-fi 芬兰语(芬兰) fi-fi
// 英语(丹麦) en-dk 丹麦语(丹麦) da-dk
// 英语(以色列) en-il 希伯来语(以色列) he-il
// 英语(南非) en-za 英语(印度) en-in
// 英语(挪威) en-no 英语(新加坡) en-sg
// 英语(新西兰) en-nz 英语(印度尼西亚) en-id
// 英语(菲律宾) en-ph 英语(泰国) en-th
// 英语(马来西亚) en-my 英语(阿拉伯) en-xa
// 韩文(韩国) ko-kr 日语(日本) ja-jp
// 荷兰语(荷兰) nl-nl 荷兰语(比利时) nl-be
// 葡萄牙语(葡萄牙) pt-pt 葡萄牙语(巴西) pt-br
// 法语(法国) fr-fr 法语(卢森堡) fr-lu
// 法语(瑞士) fr-ch 法语(比利时) fr-be
// 法语(加拿大) fr-ca 西班牙语(拉丁美洲) es-la
// 西班牙语(西班牙) es-es 西班牙语(阿根廷) es-ar
// 西班牙语(美国) es-us 西班牙语(墨西哥) es-mx
// 西班牙语(哥伦比亚) es-co 西班牙语(波多黎各) es-pr
// 德语(德国) de-de 德语(奥地利) de-at
// 德语(瑞士) de-ch 俄语(俄罗斯) ru-ru
// 意大利语(意大利) it-it 希腊语(希腊) el-gr
// 挪威语(挪威) no-no 匈牙利语(匈牙利) hu-hu
// 土耳其语(土耳其) tr-tr 捷克语(捷克共和国) cs-cz
// 斯洛文尼亚语 sl-sl 波兰语(波兰) pl-pl
// 瑞典语(瑞典) sv-se 西班牙语 (智利) es-cl
public static final String I18N_TEMP_DIR = "/Users/kylinhuang/Desktop/ExcelUtil/";
public static final String StringDir = "/Users/kylinhuang/Desktop/ExcelUtil/values/";
private static final String StringFileName = "strings.xml";
/**
* @param args
*/
public static void main(String[] args) {
readDirALLXml(StringDir + LANGUAGE[0], 0); // 读取默认
// DEFAULT_LANGUAGE_FLAG,
printMap();
readDirALLXml(StringDir + LANGUAGE[1], 1); // 读取中文 "zh-cn",
printMap();
// readDirALLXml(StringDir + LANGUAGE[2] , 2); // 读取 "en-rGB"
// printMap();
readDirALLXml(StringDir + LANGUAGE[3], 3); // 读取 "de-rDE"
printMap();
readDirALLXml(StringDir + LANGUAGE[4], 4); // 读取 "fr-rFR" values-fr-rFR
// values-fr-rFR
printMap();
String Excel_paht = I18N_TEMP_DIR + System.currentTimeMillis() + ".xls";
onExportExcel(Excel_paht);
String xmlDir = I18N_TEMP_DIR + System.currentTimeMillis() + "/values/";
try {
onExportXML(xmlDir);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static void onExportXML(String xmlDir) throws IOException,
DocumentException {
File dir = new File(xmlDir);
if (dir.exists() == false)
dir.mkdirs();
for (int i = 0, size = LANGUAGE.length; i < size; i++) {
File f = new File(xmlDir + LANGUAGE[i] + "/string.xml");
if (f.getParentFile().exists() == false) f.getParentFile().mkdirs();
if (f.exists() == false) f.createNewFile();
Document document = DocumentHelper.createDocument();
Element resources = document.addElement("resources");
for (String key : list.keySet()) {
// System.out.println("key= " + key + " and value= " +
// list.get(key).id + " " + list.get(key).LANGUAGE[0]);
String value = list.get(key).LANGUAGE[i];
if (null != value && value.length() > 0) {
Element s = resources.addElement("string");
s.addAttribute("name", key);
s.addText(list.get(key).LANGUAGE[i]);
}
}
try {
OutputFormat outputFormat = OutputFormat.createPrettyPrint();
outputFormat.setLineSeparator("\r\n");// 这是为了换行操作
Writer writer = new FileWriter(xmlDir + LANGUAGE[i] + "/string1.xml");
XMLWriter outPut = new XMLWriter(writer, outputFormat);
outPut.write(document);
outPut.close();
} catch (Exception e) {
e.printStackTrace();
}
//
// OutputFormat format = OutputFormat.createPrettyPrint(); //
// 设置美观的缩进格式,便于阅读
// format.setEncoding("gb2312"); // 设置文本格式
// // format =
// OutputFormat.createCompactFormat();//设置紧凑格式(消除多余空格),便于下载
// XMLWriter writer = new XMLWriter(System.out, format);
// writer.setWriter(fileWriter);
// writer.write(doc);
// writer.close();
// OutputFormat format = OutputFormat.createPrettyPrint();
// XMLWriter writer = new XMLWriter(new FileOutputStream(f),format);
// writer.write(doc);
// writer.close();
}
}
private static void printMap() {
StringBuffer str;
for (String key : list.keySet()) {
System.out.println("key= " + key + " and value= "
+ list.get(key).id + " " + list.get(key).LANGUAGE[0]);
}
}
private static void onExportExcel(String excel_paht) {
File file = new File(excel_paht);
if (!file.getParentFile().exists()) {
file.mkdirs();
}
OutputStream excelStream;
try {
excelStream = new FileOutputStream(excel_paht);
// create one book
WritableWorkbook workbook = Workbook.createWorkbook(excelStream);
// create sheet
WritableSheet sheet = workbook.createSheet("1", 0);
// add titles
for (int x = 0, size = LANGUAGE.length; x < size; x++) {
sheet.addCell(new Label(x, 0, LANGUAGE[x]));
}
int y = 0;
// add data
for (HashMap.Entry<String, Entity> entry : list.entrySet()) {
String key = entry.getKey();
Entity e = (Entity) entry.getValue();
int size = e.LANGUAGE.length;
for (int x = 0; x < size; x++) {
if (x == 20) { // android_id
sheet.addCell(new Label(x, y + 1, e.id));
} else {
String content = e.LANGUAGE[x] != null ? e.LANGUAGE[x]
.toString() : "";
if (null != content && content.length() > 0) {
sheet.addCell(new Label(x, y + 1, content));
}
}
}
y++;
}
workbook.write();
workbook.close();
excelStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (RowsExceededException e1) {
e1.printStackTrace();
} catch (WriteException e1) {
e1.printStackTrace();
}
}
private static void readDirALLXml(String xml_path, int positiion) {
if (null != xml_path && xml_path.length() > 0) {
// File f = new File(xml_path);
File files[] = new File(xml_path).listFiles(new FilenameFilt
android String.xml Excel 相互转换工具
3星 · 超过75%的资源 需积分: 50 49 浏览量
2017-07-26
19:54:21
上传
评论 1
收藏 2.88MB ZIP 举报
kylin_huang
- 粉丝: 0
- 资源: 6
最新资源
- DatabaseWatermarkingBasedonTextFormat
- -移动通信-网络课程设计与研究
- 基于Python的PCA人脸识别算法的原理及实现代码+文档详解.zip
- 甘肃移动全业务工程建设项目管理流程优化研究
- 549springboot + vue 民宿管理平台.zip (可运行源码+数据库文件+文档)
- ZArchiver.Pro_0.9.5.apk
- vmware环境配置.mp4
- 548springboot + vue 大学生社团活动平台.zip(可运行源码+数据库文件+文档)
- 微信小程序 辩论倒计时小程序源码 作业设计demo 计算机专业参考
- 深入探究文件IO,嵌入式Linux
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈