我正在使用 C# 和 Excel 2007。谁能告诉我如何将 Excel 工作表放在 C# 打印预览对话框中?以及如何将 Excel 工作表放入一张纸的可打印区域。提前致谢!
是否可以在打印预览对话框中添加额外的按钮?我想在那里放置一个文本字段,以便用户可以输入要打印在纸上的文本。
我正在使用 C# 和 Excel 2007。谁能告诉我如何将 Excel 工作表放在 C# 打印预览对话框中?以及如何将 Excel 工作表放入一张纸的可打印区域。提前致谢!
是否可以在打印预览对话框中添加额外的按钮?我想在那里放置一个文本字段,以便用户可以输入要打印在纸上的文本。
SpreadsheetGear for .NET有一个 WorkbookView.PrintPreview() 方法,该方法在 .NET 打印预览窗口中显示 Excel 工作簿,并支持 IPageSetup.FitToPagesTall / FitToPagesWide 属性以强制在一页上打印。
您可以下载免费试用版并在 C# 控制台应用程序中运行此代码(首先添加对 SpreadsheetGear.dll 和 System.Windows.Forms.dll 的引用):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SpreadsheetGear;
namespace SpreadsheetGearPrintPreview
{
class Program
{
static void Main(string[] args)
{
// Create a workbook to preview.
IWorkbook workbook = Factory.GetWorkbook();
IWorksheet worksheet = workbook.Worksheets[0];
worksheet.Name = "MySheet";
worksheet.Cells["A1:J100"].Formula = "=ROUND(RAND()*ROW()*COLUMN(),0)";
// Set the print area.
IPageSetup pageSetup = worksheet.PageSetup;
pageSetup.PrintArea = "A1:J100";
// This will force the workbook to be printed on one page.
pageSetup.FitToPagesTall = 1;
pageSetup.FitToPagesWide = 1;
// Create a WorkbookView and display the workbook in Print Preview.
var workbookView = new SpreadsheetGear.Windows.Forms.WorkbookView(workbook);
workbookView.PrintPreview();
}
}
}
您还可以使用 SpreadsheetGear WorkbookView 控件来允许用户编辑工作簿。SpreadsheetGear 不支持修改打印预览窗口。它确实有 SpreadsheetGear.Drawing.Image API,您可能会在自己的打印预览窗口中使用这些 API,但这可能需要相当多的工作,而且我不确定 .NET 打印预览框架的可定制性如何。
免责声明:我拥有 SpreadsheetGear LLC