源代码如下:         
         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();
        } } 
写入英文字符没有问题的,当写入汉字时有乱码!另一个问题是:如何实现输入一行后,可以再自动换行,实现继续输入呢?

解决方案 »

  1.   

    是用poi吧。
    在建立的每个cell中设置编码方式,如下
    cell = row.createCell((short) colNo);
    cell.setEncoding((short) 1);或字符采用utf-8编码。
      

  2.   

    写个静态方法
    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());