您的位置:首页 > 编程语言 > Java开发

用java代码实现从excel表格读取数据然后写入生成国际化配置文件properties

2014-03-01 21:22 1666 查看
你看struts2国际化的properties文件发现这个格式都是xx=xxx,然后换行

所以只要能拿到excel中的数据(当然前提是excel数据以有规律的格式编写的)再写入到一个文本文件就可以了


excel格式

java代码

import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

/**
* @author linux_v
* @see 这个类主要用来将excel表格里面的数据取出来生成struts2国际化properties文件的格式的文本
* 当然excel得符合一定规范,或者你按你的excel对这个类加以修改
*/
public class TT {
public static void main(String[] args) throws BiffException, IOException {
File file = new File("C:\\Users\\linux_v\\Desktop\\a.xls");
File of = new File("C:\\Users\\linux_v\\Desktop\\Message_ja_JP.properties");
FileInputStream in = new FileInputStream(file);
FileOutputStream os = new FileOutputStream(of, true);
DataOutputStream dos = new DataOutputStream(new BufferedOutputStream(os,512));
Workbook workbook = Workbook.getWorkbook(in);
Sheet sheet = workbook.getSheet(0);
for(int i = 0;i<72;i++){//72表示72行,下标从0-71
for(int j=2;j>=0;j--){//2表示3列,0,1,2
if(j!=1){//这里主要看我的excel,这里和下面的if把!=后面的数字换掉就能生成中文的国际化配置文件
Cell c = sheet.getCell(j, i);//注意这里左边j表示列,右边i表示行,发现报数组越界错误八成是弄反了
String strc00 = c.getContents();
dos.write(strc00.getBytes("utf-8"));//utf-8这样不会乱码,中文的还是用gb2312吧,utf-8最后展示在myeclipse里还是乱码了
if(j!=0){//这里主要看我的excel
dos.write('=');
}
}

}
dos.write("\r\n".getBytes());
dos.flush();
}
}
}
生成的效果




忘了说需要用到第三方jar包了

给个链接,不要积分的。http://download.csdn.net/detail/tro_picana/6980141

 忘说了,中文和日文应该还要用native2ascii进行将进行转换成unicode编码的格式进行保存。具体方法如下:

native2ascii -encoding utf-8 C:\Users\linux_v\Desktop\Message_ja_JP.properties Z:\Message_ja_JP.properties

native2ascii这个exe在你的jdk中的bin中有,不用去下载。把dos窗口的目录设置到该目录下,然后输入以上命令,中文的也是一样。

观察国际化效果最好用ie浏览器,编码切换比较方便,找的比较准确。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: