Magicodes.IE
Magicodes.IE copied to clipboard
在通过模板导出数据时,如何通过一个模板将数据分散导出到多个Sheet中去
如题
您可以通过指定的条件,去将数据进行拆分到多个文件中,再将其以sheet的形式合并到指定的文件中。
var data =await exporter.ExportBytesByTemplate<BookInfo>(null,null);
Stream stream = new MemoryStream(data);
using (var pck = new ExcelPackage(stream))
{
pck.Workbook.Worksheets.Add(sheetNameStr, workbook.Worksheets[1]);
}
对于非模板导出,可以通过如下属性设置每个sheet的大小
public int MaxRowNumberOnASheet { get; set; } = 0;
另外对于住家sheet或者追加row等等,可以通过如下方式:
exporter.Append(list1).SeparateByColumn().Append(list2).ExportAppendData(filePath);
exporter.Append(list1).SeparateBySheet().Append(list2).ExportAppendData(filePath);
exporter.Append(list1).SeparateByRow().AppendHeaders().Append(list2).ExportAppendData(filePath);
您可以通过指定的条件,去将数据进行拆分到多个文件中,再将其以sheet的形式合并到指定的文件中。
var data =await exporter.ExportBytesByTemplate<BookInfo>(null,null); Stream stream = new MemoryStream(data); using (var pck = new ExcelPackage(stream)) { pck.Workbook.Worksheets.Add(sheetNameStr, workbook.Worksheets[1]); }
workbook.Worksheets[1]是哪来的?
指定条件分为多个结果集,再去进行合并,workbook.Worksheets[1]
为其他结果集.
指定条件分为多个结果集,再去进行合并,
workbook.Worksheets[1]
为其他结果集.
请问 await exporter.ExportBytesByTemplete(...)的返回结果为byte[], 我该如何将其转化为pck.Workbook.Worksheets.Add所需要的ExcelWorksheet类型呢?
您可以通过指定的条件,去将数据进行拆分到多个文件中,再将其以sheet的形式合并到指定的文件中。
var data =await exporter.ExportBytesByTemplate<BookInfo>(null,null); Stream stream = new MemoryStream(data); using (var pck = new ExcelPackage(stream)) { pck.Workbook.Worksheets.Add(sheetNameStr, workbook.Worksheets[1]); }
你好,实践过程中发现,如果不通过ExportBytesByTemplate方式导出的excel合并后会导致excel中存在不可读取的内容,而通过ExportBytesByTemplete方式导出合并Sheet就不会。 Excel打开提示错误信息如下:
Excel在“demo.xlsx”中发现不可读取的内容。是否恢复此工作簿的内容?如果信任此工作簿的来源,请单击“是”。
您可以通过指定的条件,去将数据进行拆分到多个文件中,再将其以sheet的形式合并到指定的文件中。
var data =await exporter.ExportBytesByTemplate<BookInfo>(null,null); Stream stream = new MemoryStream(data); using (var pck = new ExcelPackage(stream)) { pck.Workbook.Worksheets.Add(sheetNameStr, workbook.Worksheets[1]); }
你好,实践过程中发现,如果不通过ExportBytesByTemplate方式导出的excel合并后会导致excel中存在不可读取的内容,而通过ExportBytesByTemplete方式导出合并Sheet就不会。 Excel打开提示错误信息如下:
Excel在“demo.xlsx”中发现不可读取的内容。是否恢复此工作簿的内容?如果信任此工作簿的来源,请单击“是”。
已确认,应该是导出的默认表格样式导致的,当将导出实体属性设置为TableStyle="None"时,异常就没有出现了
这个我们需要抽时间跟进,非常感谢。
@hueifeng 你好,在实际应用中发现,通过您提供的合并Sheet的方式会导致合并结果的Excel列宽相比原始模板会发生变化,请问这种情况应该如何处理呢?