public Result<object> GetAExcelFieItem(string[] aid, int kind, string contype) {
string fileUrl = AppDomain.CurrentDomain.BaseDirectory + "\\Template\\FileItemData.xls";
Result<object> result = new Result<object>();
try
{
List<Volumes> listvol = Item.Where(w => aid.Any(a => a == w.ID)).OrderBy(o => o.Sort).ToList(); //获取数
WorkbookDesigner designer = new WorkbookDesigner();
Workbook workbook = new Workbook(fileUrl);
Worksheet worksheet = workbook.Worksheets[0];
Cells cells = worksheet.Cells;
Aspose.Cells.Range range = cells.CreateRange("A1", "G19");
//打开模板文件,得到WorkBook对象
int allpagecount = 0;
listvol = listvol == null ? new List<Volumes>() : listvol;
foreach (var vol in listvol)
{
var vlis = List.Where(p=> p.VolumesID == vol.ID).OrderBy(p=> p.Sort).ToList();
int pagecount = vlis.Count / 15 + (vlis.Count % 15 == 0 ? 0 : 1); //当前卷的总页数
for (int j = 1; j <= pagecount; j++)
{
int startrow = allpagecount * 19;
Aspose.Cells.Range range2 = cells.CreateRange(startrow, 0, startrow+19, 7);
range2.Copy(range);
range2.RowHeight = 40;
worksheet.Cells[startrow + 1, 2].PutValue(vol.VolumesName);
worksheet.Cells[startrow + 1, 5].PutValue(vol.VolumesCode);
worksheet.Cells[startrow + 2, 5].PutValue(vol.RetentionPeriod);
cells.SetRowHeight(startrow + 1, 31);
cells.SetRowHeight(startrow + 2, 31);
worksheet.Cells.ClearContents(startrow + 4, 0, startrow + 19, 7);//删除起始单元格到结束单元格数据
int pagerow = (j == pagecount && vlis.Count % 15 != 0) ? vlis.Count % 15 : 15;//当前页行数
object[,] arr = new object[pagerow, 7];
for (int i = 0; i < pagerow; i++)
{
int index = (j - 1) * 15 + i;//当前行在卷内的序号
worksheet.Cells[startrow + 4 + i, 0].PutValue(vlis[index].Sort);
worksheet.Cells[startrow + 4 + i, 1].PutValue(vlis[index].FileCode);
worksheet.Cells[startrow + 4 + i, 2].PutValue(vlis[index].Responsible);
worksheet.Cells[startrow + 4 + i, 3].PutValue(vlis[index].FileName);
worksheet.Cells[startrow + 4 + i, 4].PutValue(vlis[index].FileDate);
worksheet.Cells[startrow + 4 + i, 5].PutValue(vlis[index].PageNum);
worksheet.Cells[startrow + 4 + i, 6].PutValue(vlis[index].Remark);
}
allpagecount++;
}
}
System.IO.MemoryStream ms = workbook.SaveToStream();//生成数据流
//转换成流字节,输出浏览器下载
byte[] ret = ms.GetBuffer();
result.Data = ret;
result.Message = "目录.xls";
result.DataCount = 1;
//关闭流
ms.Close();
GC.Collect();
}
catch (Exception e)
{
result.Flag = false;
GC.Collect();
if (e.InnerException != null)
result.Message = e.InnerException.Message;
else
result.Message = e.Message;
}
return result;
}