当前页面: 开发资料首页 → J2SE 专题 → 用opi包把汉字写入excel里,出现乱码!!
用opi包把汉字写入excel里,出现乱码!!
摘要: 用opi包把汉字写入excel里,出现乱码!!
源代码如下:
import org.apache.poi.hssf.usermodel.*;
import java.io.FileOutputStream;
public class PoiTest {
static public void main(String[] args) throws Exception {
FileOutputStream fos = new FileOutputStream(-#34;d://test.xls-#34;);
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
wb.setSheetName(0, -#34;first sheet-#34;);
HSSFRow row = s.createRow(0);
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue(-#34;汉字-#34;);
//cell.setCellValue(-#34;Hello! This message is generated from POI.-#34;);
wb.write(fos);
fos.close();
}
}
写入英文字符没有问题的,当写入汉字时有乱码!另一个问题是:如何实现输入一行后,可以再自动换行,实现继续输入呢?
是用poi吧。
在建立的每个cell中设置编码方式,如下
cell = row.createCell((short) colNo);
cell.setEncoding((short) 1);
或字符采用utf-8编码。
写个静态方法
public static void setCellGBKValue(HSSFCell cell, String value) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING); //设置CELL的编码信息
cell.setEncoding(HSSFCell.ENCODING_UTF_16); //设置编码保证中文正常显示
cell.setCellValue(value);
}
然后可以这样调用
setCellGBKValue(row.createCell((short) 0),getValueXXX());