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进行改名操作。
没有评论:
发表评论