"한 페이지에 모든 열 맞춤" 설정에 대한 파일을 설정하는 방법
Apache POI에서 생성된 파일이 한 페이지 설정에 모든 열에 맞는 fie를 생성해야 하는 요구 사항이 있습니다.API로 여러 가지 변형을 시도해 보았지만 지금까지 할 수 없었습니다.또한 저는 그것이 가능한지 정말로 찾을 수 없습니다.
그것은 마치.setFitToPage(true)
기능은 내가 원하는 너비뿐만 아니라 높이와 너비 모두 크기를 조정합니다.사용.setFitWidth
그리고.setFitHeight
제가 다른 다양한 스택 오버플로 질문에서 발견한 것처럼 아무 영향도 미치지 않는 것 같습니다.
지금까지 제가 가진 것은 다음과 같습니다.
public void setPrintSettings(Sheet sheet) {
sheet.setFitToPage(true); //this will resize both height and width to fit
sheet.getPrintSetup().setLandscape(true);
sheet.getPrintSetup().setFitWidth((short) 1);
sheet.getPrintSetup().setFitHeight((short) 1);
}
할 일이 아닙니다setFitToPage(true)
Excel은 한 페이지에 맞게 높이와 너비를 조정합니다.이 전화는 필요하지만, 다른 이유 때문에 필요합니다.Excel의 Page Setup 화면에서 이 메서드 호출은 대화 상자에서 활성화되는 라디오 버튼을 제어합니다.값true
에서는 "맞추기 위치:"에 대한 라디오 단추를 설정합니다. 이 옵션을 사용하면 페이지 너비를 페이지 높이 상자로 제어할 수 있습니다.값false
는 "Adjust to:"에 대한 라디오 버튼을 설정합니다. 일반 크기의 백분율입니다.
이 경우 "상관 없음" 페이지 높이로 1페이지 너비에 맞추려고 합니다.페이지 높이에 사용할 값(setFitHeight
방법)은0
여기서.
sheet.setFitToPage(true);
PrintSetup ps = sheet.getPrintSetup();
ps.setFitWidth( (short) 1);
ps.setFitHeight( (short) 0);
내가 글을Workbook
포함Sheet
이 설정을 사용하여 Excel에서 열면 페이지 설정 대화 상자에 "고정 대상:" 라디오 단추가 선택되고 "가로 세로 1페이지"(공백) 높이가 선택됩니다."인쇄 미리보기" 화면에서 인쇄 설정 옵션은 "한 페이지에 모든 열 맞춤"을 선택된 대로 나열합니다.
public static void ExportPartsToExcel(this System.Data.DataTable DataTable, string ExcelFilePath = null)
{
int ColumnsCount;
int RowShift = 7;
ColumnsCount = DataTable.Columns.Count;
// load excel, and create a new workbook
Application Excel = new Application();
Excel.Workbooks.Add();
// single worksheet
_Worksheet Worksheet = Excel.ActiveSheet;
Excel.Sheets[1].Name = "TEST";
Excel.PrintCommunication = false; //This has to be set, or FittoPagesWide crashes
Worksheet.PageSetup.Zoom = false;
Worksheet.PageSetup.FitToPagesWide = true;
Worksheet.PageSetup.FitToPagesTall = false;
Worksheet.PageSetup.Orientation = XlPageOrientation.xlLandscape;
Worksheet.PageSetup.TopMargin = 0.5;
Worksheet.PageSetup.BottomMargin = 0.5;
Worksheet.PageSetup.RightMargin = 0.5;
Worksheet.PageSetup.LeftMargin = 0.5;
Excel.PrintCommunication = true;
// check fielpath
if (ExcelFilePath != null && ExcelFilePath != "")
{
Worksheet.SaveAs(ExcelFilePath);
Excel.Quit();
Marshal.FinalReleaseComObject(Worksheet);
Marshal.FinalReleaseComObject(TitleRange);
Marshal.FinalReleaseComObject(HeaderRange);
Marshal.FinalReleaseComObject(CellRange);
Marshal.FinalReleaseComObject(Excel);
}
else
// no filepath is given
{
Excel.Visible = true;
}
이 방법은 저에게 효과가 있습니다. 기본적으로 저는 두 가지를 모두 설정했습니다.Worksheet.PageSetup.FitToPagesWide = true;
그리고.Worksheet.PageSetup.FitToPagesTall = false;
언급URL : https://stackoverflow.com/questions/36432953/how-can-it-set-the-file-for-fit-all-columns-on-one-page-setting
'IT' 카테고리의 다른 글
&" 문자는 web.config에 저장된 암호를 해독합니다. (0) | 2023.07.12 |
---|---|
gcc로 어셈블리에 컴파일하려면 어떻게 해야 합니까? (0) | 2023.07.12 |
ORA-01438: 지정된 정밀도보다 큰 값이 이 열에 허용됩니다. (0) | 2023.07.12 |
"stale" git branch는 무엇입니까? (0) | 2023.07.12 |
iOS 시뮬레이터 카메라에 액세스하는 방법 (0) | 2023.07.12 |