IT

"한 페이지에 모든 열 맞춤" 설정에 대한 파일을 설정하는 방법

itgroup 2023. 7. 12. 23:42
반응형

"한 페이지에 모든 열 맞춤" 설정에 대한 파일을 설정하는 방법

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

반응형