Excel自动化:任何知道一张工作表将打印多少页的方法

本文关键字:工作 打印 多少 方法 一张 任何知 自动化 Excel | 更新日期: 2023-09-27 17:57:30

有些时候纸张太大,无法打印出来,所以如果是这种情况,我希望避免打印。

我当前的程序:

  1. 打开excel文档
  2. 复制第一张图纸
  3. 创建新文档
  4. 在新文档中插入文本和公式
  5. 显示文本时自动调整列
  6. 打印文本(尚未实施)
  7. 显示公式时自动调整列
  8. 打印公式(尚未实施)

复制/粘贴的原因是即使文档/工作表/单元格有密码写保护,也能自动调整列。

但我希望避免打印它,例如,如果当前的工作表填充了100多页。我该如何检查?

        // Open Excel
        xlApp = new Excel.ApplicationClass();
        xlApp.Visible = true;
        // Open document
        xlWorkBook = xlApp.Workbooks.Open(filename, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "'t", false, false, 0, true, 1, 0);
        // Select the sheet we want to copy
        Excel.Sheets xlSheets = null;
        xlSheets = xlWorkBook.Sheets as Excel.Sheets;
        xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
        // Mark all cells and copy
        xlWorkSheet.UsedRange.Copy(misValue);
        // Make a new empty document
        Excel.Workbook xlWorkBook2;
        xlWorkBook2 = xlApp.Workbooks.Add(misValue);
        // Select the first sheet and insert
        Excel.Worksheet xlWorkSheet2;
        xlWorkSheet2 = (Excel.Worksheet)xlWorkBook2.Worksheets.get_Item(1);
        xlWorkSheet2.Name = "temp";
        // Just copies to range starting at cell A1
        Excel.Range range = (Excel.Range)((Excel.Worksheet)xlWorkSheet2).Cells[1, 1];
        range.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteValues, Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, misValue, misValue);
        range.PasteSpecial(Microsoft.Office.Interop.Excel.XlPasteType.xlPasteFormulas, Microsoft.Office.Interop.Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, misValue, misValue);
        // Adjust width of cells (autofit must be called on a column)
        xlWorkSheet2.Columns.AutoFit();
        // Show formulas
        xlWorkSheet2.Application.ActiveWindow.DisplayFormulas = true;
        xlWorkSheet2.Columns.AutoFit();
        xlWorkSheet2.PrintPreview(misValue);
        // Close Excel
        xlWorkBook2.Close(false, false, misValue);
        xlWorkBook.Close(false, false, misValue);
        xlApp.Quit();

Excel自动化:任何知道一张工作表将打印多少页的方法

这篇文章回答了这个问题。在我的代码中,它将被实现为:

int numberOfPages = xlWorkSheet2.PageSetup.Pages.Count;

它是有效的。