许可
评估版限制
Aspose.Cells 产品评估版(未指定许可证)提供完整的产品功能,但仅限于在一个程序中打开 100 个文件和一个带有评估水印的额外工作表。
限制如下所示:
- 打开的文件数 (Aspose.Cells) 运行程序时,使用 Aspose.Cells 库只能打开 100 个 Excel 文件。如果您的应用程序超过此数量,将抛出异常。
- 配置文件设置(Aspose.Cells.网格网) 您不能通过将以下代码行添加到配置部分(例如在 web.config 文件中)来重新指定脚本路径。 acw_client是一个包含文件和Aspose.Cells的文件夹。GridWeb使用这个文件夹来管理它的内部配置,它有脚本文件、图像文件和其他文件来指定GridWeb的行为和设置其他操作。配置文件用于防止控件使用嵌入式客户端资源(图像、脚本等),这在某些情况/场景中很有用。此外,web.config 文件中的此配置设置仅对控件的 LICENSED 版本生效。
XML
<appSettings>
<add key="aspose.cells.gridweb.acw_client_path" value="/acw_client/" />
<add key="aspose.cells.gridweb.force_script_path" value="true" />
</appSettings>
此外,带有评估水印的工作表将始终显示为使用 Aspose.Cells 库生成的 excel 文件中的活动工作表。只有在授权版本中,您可以将活动工作表设置为其他工作表。在输出 PDF 或 Aspose.Cells 的图像文件中,评估水印将粘贴在文档/图像的顶部。您也不能在 GridWeb 控件中隐藏评估版权警告(额外的工作表),它将始终添加(在工作表选项卡的末尾)在控件中。
在 Aspose.Cells 组件中应用许可证
该许可证是一个纯文本 XML 文件,其中包含产品名称、获得许可的开发人员数量、订阅到期日期等详细信息。该文件经过数字签名,因此请勿修改该文件。即使无意中在文件中添加额外的换行符也会使其失效。如果您想避免其评估限制,您需要在使用 Aspose.Cells 之前设置许可证。每个应用程序(或进程)只需要设置一次许可证。许可证可以从文件、流或嵌入式资源中加载。
Aspose.Cells 尝试在以下位置查找许可证:
- 显式路径
- 包含 Aspose.Cells.dll 的文件夹
- 包含调用 Aspose.Cells.dll 的程序集的文件夹
- 包含入口程序集(您的 .exe)的文件夹
- 称为 Aspose.Cells.dll 的程序集中的嵌入式资源
有两种常用的方法来应用许可证,从文件或流,或作为嵌入式资源。
从磁盘或流应用许可证
设置许可证最简单的方法是将许可证文件放在与 Aspose.Cells.dll 相同的文件夹中,并仅指定文件名而不指定其路径。
//Instantiate an instance of license and set the license file through its path
Aspose.Cells.License license = new Aspose.Cells.License();
license.SetLicense("Aspose.Cells.lic");
也可以从流中加载许可证。
//Instantiate an instance of license and set the license through a stream
Aspose.Cells.License license = new Aspose.Cells.License();
license.SetLicense(myStream);
应用计量许可证
Aspose.Cells 允许开发人员应用计量密钥。这是一种新的许可机制。新的许可机制将与现有的许可方法一起使用。那些希望根据 API 功能的使用情况进行计费的客户可以使用计量许可。详情请参阅计量许可常见问题解答部分。
一个新班级计量的已引入应用计量密钥。以下是演示如何设置计量公钥和私钥的示例代码。
//Set metered public and private keys
Metered metered = new Metered();
//Access the setMeteredKey property and pass public and private keys as parameters
metered.SetMeteredKey("*************", "*************");
//Instantiate a new Workbook
Workbook workbook = new Workbook();
//Check if the license is set
Console.WriteLine(workbook.IsLicensed);
//Get the Consumption quantity
decimal amountBefore = Metered.GetConsumptionQuantity();
Console.WriteLine(amountBefore);
Workbook workbook2 = new Workbook("e:\\test2\\Book1.xlsx");
workbook2.Save("e:\\test2\\out1.xlsx");
//Since uploading data is already running on another thread, so you might need to wait for some time (optional)
System.Threading.Thread.Sleep(10000);
//Get the Consumption quantity again which should be greater a bit
decimal amountAfter = Metered.GetConsumptionQuantity();
Console.WriteLine(amountAfter);
使用嵌入式资源
将许可证与您的应用程序打包并确保它不会丢失的另一种巧妙方法是将其作为嵌入式资源包含到调用 Aspose.Cells 的程序集中。要将许可证文件作为嵌入式资源包含,请执行以下步骤:
- 在 Visual Studio .NET 中,通过选择将许可证 (.lic) 文件包含到项目中添加现有项目来自文件菜单。
- 在解决方案资源管理器中选择文件并设置建立行动到嵌入式资源在“属性”窗口中
要访问程序集中嵌入的许可证(作为嵌入资源),不需要调用 Microsoft .NET 框架的 System.Reflection.Assembly 类的 GetExecutingAssembly 和 GetManifestResourceStream 方法。所有需要做的就是将许可证文件作为嵌入式资源添加到您的项目中,并将许可证文件的名称传递给 SetLicense 方法。这Aspose.Cells.Licenseclass会自动在嵌入的资源中寻找license文件。请查看下面给出的示例以了解这种在您的应用程序中设置许可证(嵌入式)的方法。
//Instantiate the License class
Aspose.Cells.License license = new Aspose.Cells.License();
//Pass only the name of the license file embedded in the assembly
license.SetLicense("Aspose.Cells.lic");
在 Aspose.Cells 网格控件中设置许可证
在 Aspose.Cells Grid Suite 中,可以从文件、流或嵌入式资源中加载许可证。 Aspose.Cells.GridDesktop / Aspose.Cells.GridWeb 尝试在以下位置查找许可证:
- 显式路径
- 包含组件dll的文件夹(包含在Aspose.Cells.GridDesktop或Aspose.Cells.GridWeb中)
- 包含调用组件 dll 的程序集的文件夹(包含在 Aspose.Cells.GridDesktop 或 Aspose.Cells.GridWeb 中)
- 包含入口程序集(您的 .exe)的文件夹
- 调用组件dll的程序集中的嵌入式资源(包含在Aspose.Cells.GridDesktop或Aspose.Cells.GridWeb中)
从磁盘或流应用许可证
设置许可证最简单的方法是将许可证文件放在与组件的 dll 相同的文件夹中(包含在 Aspose.Cells.GridWeb 中)并仅指定文件名而不指定其路径。
//Instantiate an instance of license and set the license file through its path
Aspose.Cells.GridWeb.License license = new Aspose.Cells.GridWeb.License();
license.SetLicense("MyLicense.lic");
也可以从流中加载许可证。
//Instantiate an instance of license and set the license through a stream
Aspose.Cells.GridWeb.License license = new Aspose.Cells.GridWeb.License();
license.SetLicense(myStream);
将许可证应用为嵌入式资源
将许可证与您的应用程序打包并确保它不会丢失的另一种巧妙方法是将其作为嵌入式资源包含到调用组件 dll 的程序集中(包含在 Aspose.Cells.GridDesktop 中)。要将许可证文件包含为嵌入式资源,请执行以下步骤:
- 在 Visual Studio .NET 中,使用添加现有项目上的选项文件菜单。
- 在 Solution Explorer 中选择该文件,并在 Properties 窗口中将 Build Action 设置为 Embedded Resource。
- 要访问程序集中嵌入的许可证(作为嵌入资源),不需要调用 System.Reflection.Assembly 类的 GetExecutingAssembly 和 GetManifestResourceStream 方法 Microsoft .NET 框架。相反,将许可证文件作为嵌入资源添加到您的项目并将许可文件的名称传递给 SetLicense 方法。 License 类自动在嵌入式资源中查找许可证文件。
请查看下面给出的示例,以了解这种将许可证作为嵌入式资源应用到您的应用程序的方法。
//Instantiate the License class
Aspose.Cells.GridDesktop.License license = new Aspose.Cells.GridDesktop.License();
//Pass only the name of the license file embedded in the assembly
license.SetLicense("Aspose.Total.lic");
为 WinForm 应用程序申请 Aspose.Cells.GridDesktop 中的许可证
建议您将许可代码放在应用程序启动之前,并且只应用一次。例如,对于 windows C# 应用程序,将许可代码放在 Main 方法中。
public class Form1 : System.Windows.Forms.Form
{
private Aspose.Cells.GridDesktop.GridDesktop gridDesktop1;
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
}
/// The main entry point for the application.
/// </summary>
.
.
.
.
[STAThread]
static void Main()
{
Aspose.Cells.GridDesktop.License lic = new Aspose.Cells.GridDesktop.License();
//Use this line if you are using an explicit path for the license file.
lic.SetLicense(@"C:\MyLicense.lic");
//Or use the line below if you are using the license file as an embedded resource.
//lic.SetLicense("MyLicense.lic");
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
Aspose.Cells.GridDesktop.Worksheet sheet = this.gridDesktop1.Worksheets.Add("MySheet");
sheet.Cells["A1"].SetCellValue("Hello");
gridDesktop1.ActiveSheetIndex = 1;
}
}
Aspose.Cells.GridWeb申请License注意事项
建议将许可代码放在 Web 应用程序的 Global.asax.cs 中(假定此许可文件放在“d:\”驱动器上):
protected void Application_Start(Object sender, EventArgs e)
{
Aspose.Cells.GridWeb.License lic = new Aspose.Cells.GridWeb.License();
lic.SetLicense(@"d:\Aspose.Cells.GridWeb.lic.xml");
}
从流中加载许可证
protected void Application_Start(Object sender, EventArgs e)
{
Aspose.Cells.GridWeb.License lic = new Aspose.Cells.GridWeb.License();
lic.SetLicense(myStream);
}