[]
导出单元格类型的上下文信息。
public interface IExportContext
云存储上下文
ICloudStorageContext CloudStorageContext { get; }
类型 | 描述 |
---|---|
ICloudStorageContext |
导出图片时的上下文信息,如图片保存路径等相关信息。
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
}
}
}
是否是调试模式。
bool IsDebugMode { get; }
类型 | 描述 |
---|---|
bool |
导出时单元格类型生成的图片大小。
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;
}
数据访问器,提供数据表的查询结果。
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;
}
}
根据图片比特数组生成图片对象。
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
}
}
}
根据图片路径生成图片对象。
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;
}
}
把模板组件在某一状态下的样式设置给单元格。
void SetCellTypeStyleTemplateToCell(PartStyleUnit style, ExportResultInfo exportInfo)
类型 | 名称 | 描述 |
---|---|---|
PartStyleUnit | style | 模板组件的状态样式单元。 |
ExportResultInfo | exportInfo | 导出单元格类型的返回结果。 |