前几天由于公司需求,要将配置文件中的dd是的图片以及相关信息导出成excel。在此具体需求如下
1、根据ani配置文件读取配置信息(配置说明、配置标题、配置路径、配置图片、图片尺寸)
2、根据dds图片路径导入excel(原图大小显示、一行一张图)图片显示在单个单元格中
3、图片高度高于单元格行高限制进行缩放显示(行高:409)
4、首行背景色填充+冻结
注意:
1、配置文件数据量比较大,excel写入的时候容易引发内存溢出,特别是内存达到1g的时候就报错了
2、都要将dds文件读取到内存中,图片大小又不相同。还要缩放,记得释放图片。以及数据流,要不然容易引发:GDI+一般错误什么鬼的
3、我也使用NPOI的方式,也使用过Aspose.Cells,两个差不多,记得使用NuGet搜索一下关键字,安装添加引用即可
代码也没整理,你可以根据上面的几个点拆分成各个方法。
/// <summary>
/// 解析配置文件并导出Excel
/// </summary>
/// <param name="dicAniInfo"></param>
/// <param name="listKeys"></param>
/// <returns></returns>
public string ExportExcel(Dictionary<string, List<string>> dicAniInfo, string[] listKeys)
{
Workbook wb = new Workbook();
wb.Worksheets.Clear();
Worksheet ws = wb.Worksheets.Add("物品资源列表");
ws.FreezePanes(1, 5, 1, 5);
//表头
for (int i = 0; i < this.SGridRetrieve.PrimaryGrid.Columns.Count; i++)
{
ws.Cells[