源代码如下:
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("d:\\test.xls");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
wb.setSheetName(0, "first sheet");
HSSFRow row = s.createRow(0);
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("汉字");
//cell.setCellValue("Hello! This message is generated from POI.");
wb.write(fos);
fos.close();
} }
写入英文字符没有问题的,当写入汉字时有乱码!另一个问题是:如何实现输入一行后,可以再自动换行,实现继续输入呢?
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("d:\\test.xls");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet s = wb.createSheet();
wb.setSheetName(0, "first sheet");
HSSFRow row = s.createRow(0);
HSSFCell cell = row.createCell((short) 0);
cell.setCellValue("汉字");
//cell.setCellValue("Hello! This message is generated from POI.");
wb.write(fos);
fos.close();
} }
写入英文字符没有问题的,当写入汉字时有乱码!另一个问题是:如何实现输入一行后,可以再自动换行,实现继续输入呢?
在建立的每个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());