2017-10-31 1 views

답변

1

apache poi에 메소드가없는 경우 어떻게해야합니까? 유사한 방법을 코딩하는 방법을 살펴볼 수 있습니다. 예를 들어 XSSFSheet..setZoom은 기본값 CTSheetViewzoomScale을 설정하는 것 외에는 아무것도 수행하지 않습니다. 따라서 기본 시트 뷰를 얻으려면 그 반대의 작업을 수행하여 zoomScale을 얻을 수 있습니다.

예 :

import java.io.FileOutputStream; 

import org.apache.poi.ss.usermodel.*; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 

import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetView; 

import java.lang.reflect.Method; 

public class ExcelXSSFSheetZoom { 

static long getZoom(XSSFSheet sheet) throws Exception { 
    Method getDefaultSheetView = XSSFSheet.class.getDeclaredMethod("getDefaultSheetView"); 
    getDefaultSheetView.setAccessible(true); 
    CTSheetView sheetview = (CTSheetView)getDefaultSheetView.invoke(sheet); 
    return sheetview.getZoomScale(); 
} 

public static void main(String[] args) throws Exception { 

    Workbook wb = new XSSFWorkbook(); 
    Sheet sheet = wb.createSheet(); 
    sheet.setZoom(120); 

    System.out.println(getZoom((XSSFSheet)sheet)); 

    wb.write(new FileOutputStream("ExcelXSSFSheetZoom.xlsx")); 
    wb.close(); 

} 

} 
+0

브릴리언트은 ... 당신이 많은 시간을 저장 감사드립니다. –

관련 문제