2014-01-07 8 views
6

Excel 시트에 대해 왼쪽 또는 오른쪽 인쇄 여백을 설정할 수 있습니까?Apache POI - Excel에서 왼쪽/오른쪽 인쇄 여백 설정

기본 여백이 상당히 큽니다. 나는 XSSFPrintSetup에서 어느 setLeftMargin도 setRightMargin를 볼 수 있지만 머리글과 바닥 글 수 없습니다

XSSFPrintSetup printSetup = (XSSFPrintSetup) sheet.getPrintSetup(); 
    printSetup.setHeaderMargin(0.5D); 
    printSetup.setFooterMargin(0.5D); 

나에게 조금 도움이 될 어떤 종류의 친구가 있습니까?

답변

17

용지 여백은 XSSFPrintSetup 개체에는 포함되어 있지 않지만 XSSFSheet 개체에는 포함되어 있지 않습니다. 위/왼쪽/아래/오른쪽/머리글/바닥 글 여백에 적절한 Sheet 상수를 전달하여 SheetgetMarginsetMargin 방법을 사용하십시오. 여백을 인치로 설정하고 가져옵니다.

double leftMarginInches = sheet.getMargin(Sheet.LeftMargin); 
sheet.setMargin(Sheet.RightMargin, 0.5 /* inches */); 
+0

이것이 차트 시트에서 작동하지 않는 이유에 대한 의견이 있으십니까? – Max

-2

double leftMargin = sheet.GetMargin(MarginType.LeftMargin); 
double rightMargin = sheet.GetMargin(MarginType.RightMargin); 

는 업데이트 열거 지금 MarginType.LeftMargin, -RightMargin된다

이 코드를 이전 코드는 다음과 같습니다

  var workbook = new XSSFWorkbook(); 
      var sheet = workbook.CreateSheet(sheetname); 
      double leftMargin = sheet.GetMargin(MarginType.LeftMargin); 
      double rightMargin = sheet.GetMargin(MarginType.RightMargin); 

이 참입니다 NPOI.

+0

당신은 여기에 같은 소프트웨어에 대해 이야기하고 있습니까? [Apache POI 메소드는 Sheet.getMargin이 아닌 Sheet.GetMargin] (https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html#getMargin%28short%29)이고 POI에 정의 된 'MarginType' 열거 형이 없습니다 – Gagravarr

+0

예, 원점을 보여주기 위해 작동 예제에서 좀 더 많은 코드를 추가했습니다. –

+0

OP는 질문 [tag : java]에 태그를 달았 기 때문에 아마도 NPOI가 아닌 Apache POI에 관해 묻고있을 것입니다. 따라서 귀하의 답변은 혼란 스럽거나 최악의 경우에 가장 혼란스러워 보일 것입니다 :/ – Gagravarr