2014-01-07 212 views
6

用apache POI可以爲Excel工作表設置左右打印邊距嗎?Apache POI - 在Excel中設置左/右打印邊距

默認邊距相當大。我看不到既不setLeftMargin也不setRightMargin在XSSFPrintSetup,但只有頁眉和頁腳:

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

有什麼樣的朋友,可以幫助我一下?

回答

17

工作表邊距不包含在XSSFPrintSetup對象中,而是包含在XSSFSheet本身中。使用SheetgetMarginsetMargin方法,爲頂部/左側/底部/右側/頁眉/頁腳頁邊距傳遞適當的Sheet常數。以英寸爲單位設置並獲取邊距。

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

任何想法爲什麼這不適用於圖表工作表? – Max

-2

現在的枚舉MarginType.LeftMargin,-RightMargin

double leftMargin = sheet.GetMargin(MarginType.LeftMargin); 
double rightMargin = sheet.GetMargin(MarginType.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 – Gagravarr

+0

中定義的'MarginType'枚舉是的,我已經從我的工作示例中添加了一些代碼來演示原點。 –

+0

OP已經標記了他們的問題[標籤:java],所以大概問起有關Apache POI而不是NPOI。因此,您的答案看起來似乎是最令人困惑的,或者最糟糕的情況是錯誤的:/ – Gagravarr