Aspose是一个处理文件格式的组件,可对Words、Excel等工具进行操作,实现代码数据导出。在这里我介绍以及提供Aspose对Excel(Aspose.Cells)导出的工具类。
1.首先介绍Aspose.Cells的基础知识:
A.Excel模板变量的定义(详细可在官网查看详细:http://www.aspose.com/docs/display/cellsnet/Using+Smart+Markers#UsingSmartMarkers-skip):
(1)普通变量格式:&=$name
(2)datatable导出格式(会自动添加多行):&=dtname.columnnae.(注:在column可添加别的标识,numeric:转化为数字,如果你在Excel中写好了公式计算,最好加上否则结果会计算错,noadd:导出的时候不添加新行,只是把数据放到Excel表格中,也就是说样式都是模板的样式,未添加时,样式则为Excel普通样式,skip:n 跳过n行,一般可以与分组结合起来使用,标识不同的分组,group:normal,分组,有多种样式,normal为普通样式,merge,repeat为另外两种样式,还有其他ascending,horizontal,shift ,copystyle等,由于没用到所以不是很了解,不满足你的需求,可以到官网查看)
(3)等
(4)这里是模板的例子:
B.直接上工具类代码(代码以及插件dll可在这里Aspose.Cells工具类下载,密码:zre7):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using Aspose.Cells;
namespace TestNamespace
{
public class TemplateExcelHelper
{
#region 根据Excel模板导出 string DataTable Dictionary<String,Object>
/*
* templatePath 模板路径(一般在bin/debug目录下)
* dtSource 数据源(datatable数据源,表名必须与模板中的对象对应)
* dictSource 附加信息
*/
public static void TemplateExportExcel(string templatePath, DataTable dtSource, Dictionary<String,Object> dictSource)
{
SaveFileDialog sf = new SaveFileDialog();
sf.Filter = "Excel files (*.xls)|*.xls";
string path = System.IO.Path.Combine(Application.StartupPath, templatePath);
WorkbookDesigner designer = new WorkbookDesigner();
try
{
designer.Open(path);
}
catch (Exception ex)
{
if (sf.ShowDialog() == DialogResult.OK)
{
try
{
ExcelHelper.ExportExcel(dtSource, sf.FileName);/