setSheetName public void setSheetName(int sheet, java.lang.String name)
set the sheet name. Will throw IllegalArgumentException if the name is greater than 31 chars or contains /\?*[] Parameters: sheet - number (0 based)指定要改变的Sheet的序列号。设置名称时,最大长度是31个文字,还有「/\?*[]」这样的字符不能使用。
指定汉字Sheet名时,用第二个方法。
setSheetName public void setSheetName(int sheet, java.lang.String name, short encoding)
--「encoding」的参数在「HSSFWorkbook」类里被定义成下面两种。
static byte ENCODING_COMPRESSED_UNICODE static byte ENCODING_UTF_16设定汉字时(包括日语),「encoding」的参数应该传入「HSSFWorkbook.ENCODING_UTF_16」。
示例程序
亲自动手做一做吧。import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class POISample{
public static void main(String[] args){
HSSFWorkbook workbook = new HSSFWorkbook();
workbook.createSheet();
workbook.createSheet();
workbook.setSheetName(0, "test");
workbook.setSheetName(1, "テスト", HSSFWorkbook.ENCODING_UTF_16);
FileOutputStream out = null;
try{
out = new FileOutputStream("sample.xls");
workbook.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
程序执行后,打开「sample1.xls」文件来看看。可以看出,汉字Sheet名被正常设好了。
使用「createSheet」方法创建新的Sheet时,不能进行encoding设定。所以要设置汉字Sheet名时,只能先新建一个Sheet,然后再对该Sheet进行改名操作。


没有评论:
发表评论