[]
        
(Showing Draft Content)

GrapeCity.Forguncy.CellTypes.IExportContext

接口 IExportContext

导出单元格类型的上下文信息。

命名空间: GrapeCity.Forguncy.CellTypes
程序集: GrapeCity.Forguncy.CellTypes.dll
语法
public interface IExportContext

属性

CloudStorageContext

云存储上下文

声明
ICloudStorageContext CloudStorageContext { get; }
属性值
类型 描述
ICloudStorageContext

ExportImageContext

导出图片时的上下文信息,如图片保存路径等相关信息。

声明
IExportImageContext ExportImageContext { get; }
属性值
类型 描述
GrapeCity.Forguncy.CellTypes.IExportImageContext
示例
public class SignatureCellType : CellType, IExportCellType
{
    public bool ExportPicture
    {
        return true;
    }

    public ExportResultInfo ExportToExcel(ICellInfo targetCell, IExportContext context)
    {
        var value = targetCell.Value as string;
        if (string.IsNullOrEmpty(value))
        {
            return null;
        }

        var byteArray = Convert.FromBase64String(value);
        var bitmapImageSource = context.GetPictureByByteArray(byteArray, context.PictureSize.Width, context.PictureSize.Height);
        return new ExportResultInfo()
        {
            ExportValue = null,
            ExportPicture = bitmapImageSource
        }
    }
}

IsDebugMode

是否是调试模式。

声明
bool IsDebugMode { get; }
属性值
类型 描述
bool

PictureSize

导出时单元格类型生成的图片大小。

声明
SizeF PictureSize { get; }
属性值
类型 描述
System.Drawing.SizeF
示例
public ExportResultInfo ExportToExcel(ICellInfo targetCell, IExportContext context)
{
    var result = new ExportResultInfo();
    if (this.ImageInfo != null)
    {
            //var folderPath = ...
            //var imagePath = context.ExportImageContext.GetServerPathFunc("~/" + folderPath + "/" + this.ImageInfo.Name);
            var imageSource = GetImageSource(....);
            result.ExportPicture = imageSource;
    }

    return result;
}

ValueProvider

数据访问器,提供数据表的查询结果。

声明
IExportValueProvider ValueProvider { get; }
属性值
类型 描述
IExportValueProvider
示例
public class RadioGroupCellType : CellType, IExportCellType
{
    public string TableName { get; set; }

    public string TextColumn { get; set; }

    public string ValueColumn { get; set; }

    public bool ExportPicture
    {
        get
        {
            return true;
        }
    }

    public ExportResultInfo ExportToExcel(ICellInfo targetCell, IExportContext context)
    {
        ExportResultInfo result = new ExportResultInfo();

       Dictionary<string, object> queryInfo = new Dictionary<string, object>();
        queryInfo.Add(this.ValueColumn, targetCell.Value);

        var tableData = context.ValueProvider.GetTableData(TableName, new List<string>() { this.TextColumn, this.ValueColumn }, queryInfo, true);
        if(tableData != null && tableData.Count > 0)
        {
            result.ExportValue = tableData[0][this.TextColumn];
        }

        //export image
        //to do...

        return result;
    }
}

方法

GetPictureByByteArray(byte[], double, double)

根据图片比特数组生成图片对象。

声明
Stream GetPictureByByteArray(byte[] byteArray, double width, double height)
参数
类型 名称 描述
byte[] byteArray

图片比特数组。

double width

图片宽度。

double height

图片高度。

返回值
类型 描述
System.IO.Stream

返回图片对象。

示例
public class SignatureCellType : CellType, IExportCellType
{
    public bool ExportPicture
    {
        return true;
    }

    public ExportResultInfo ExportToExcel(ICellInfo targetCell, IExportContext context)
    {
        var value = targetCell.Value as string;
        if (string.IsNullOrEmpty(value))
        {
            return null;
        }

        var byteArray = Convert.FromBase64String(value);
        var bitmapImageSource = context.GetPictureByByteArray(byteArray, context.PictureSize.Width, context.PictureSize.Height);
        return new ExportResultInfo()
        {
            ExportValue = null,
            ExportPicture = bitmapImageSource
        }
    }
}

GetPictureByPicturePath(string, double, double)

根据图片路径生成图片对象。

声明
Stream GetPictureByPicturePath(string path, double width, double height)
参数
类型 名称 描述
string path

图片路径。

double width

图片宽度。

double height

图片高度。

返回值
类型 描述
System.IO.Stream

返回图片对象。

示例
public class MyImageCellType : CellType, IExportCellType
{
    public ImageValue ImageInfo { get; set; }

    public bool ExportPicture
    {
        return true;
    }

    public ExportResultInfo ExportToExcel(ICellInfo targetCell, IExportContext context)
    {
        var result = new ExportResultInfo();
        if (this.ImageInfo != null)
        {
            //var folderPath = ...
            //var imagePath = context.ExportImageContext.GetServerPathFunc("~/" + folderPath + "/" + this.ImageInfo.Name);
            var imageSource = GetImageSource(....);
            result.ExportPicture = imageSource;
        }

        return result;
    }
}

SetCellTypeStyleTemplateToCell(PartStyleUnit, ExportResultInfo)

把模板组件在某一状态下的样式设置给单元格。

声明
void SetCellTypeStyleTemplateToCell(PartStyleUnit style, ExportResultInfo exportInfo)
参数
类型 名称 描述
PartStyleUnit style

模板组件的状态样式单元。

ExportResultInfo exportInfo

导出单元格类型的返回结果。