由于需要学日语,背单词。在新浪爱问找到了一份excel格式的标准日本语初级词汇。但是喜欢有道单词本,于是需要将其转成有道支持的格式。
这是有道单词本的xml格式:
<wordbook>
<item>
<word>かばん</word>
<trans>包,公文包</trans>
<phonetic>かばん |(声调:0)</phonetic><!--这里是自己设定的,否则声调看不到,只好加入到发音中-->
<tags>名词</tags>
<process></process>
</item>
</wordbook>
这里采用jxl读取excel文件,采用dom4j创建xml文件和向其写入信息。需要导入jxl和dom4j两个jar包。
具体java源码如下:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import jxl.*;
public class Read_excel{
public static void main(String[] args) {
int i;
Sheet sheet;
Workbook book;
Cell cell1 = null,cell2 = null,cell3 = null,cell4 = null,cell5 = null;
Document document = DocumentHelper.createDocument(); //创建文档实例
Element rootElement = document.addElement("wordbook");//创建根元素
try {
//t.xls为要读取的excel文件名
book= Workbook.getWorkbook(new File("C:\\Users\\Desktop\\ne2.xls")); //注意:一定要是xls格式,否则可能不支持
//获得第一个工作表对象(ecxel中sheet的编号从0开始,0,1,2,3,....)
sheet=book.getSheet(0);
//获取左上角的单元格
cell1=sheet.getCell(0,0);
System.out.println("标题:"+cell1.getContents());
i=1;
while(true)
{
//获取每一行的单元格
cell1=sheet.getCell(0,i);//(列,行)
cell2=sheet.getCell(1,i);
cell3=sheet.getCell(2,i);
cell4=sheet.getCell(3,i);
cell5=sheet.getCell(4,i);
if("".equals(cell1.getContents())==true) //如果读取的数据为空
break;
System.out.println(cell1.getContents()+"\t"+cell2.getContents()
+"\t"+cell3.getContents()+"\t"+cell4.getContents()
+"\t"+cell5.getContents());
Element itemElement = rootElement.addElement("item");//添加子元素
Element wordElement = itemElement.addElement("word");
wordElement.addText(cell1.getContents());//为元素添加值
Element transElement = itemElement.addElement("trans");
transElement.addText(cell3.getContents());
Element phoneticElement = itemElement.addElement("phonetic" );
phoneticElement.addText(cell2.getContents()+ " |(声调:" + cell4.getContents() + ")");
Element tagsElement = itemElement.addElement("tags");
tagsElement.addText(cell5.getContents());
Element processElement = itemElement.addElement("process");
processElement.addText("");
i++;
}
book.close();
}
catch(Exception e) {
e.printStackTrace();
}
//输出格式化
XMLWriter output;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
try {
output = new XMLWriter(new FileWriter("C:\\Users\\Desktop\\ne2.xml"),format);
output.write(document);
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出完成后导入有道单词本即可开始复习。