g Sql ="Select top 100* from customers ";
//取出100条数据
ExcelFactory _factory = new ExcelFactory();
//定义一个没有参数的ExcelFactory
_factory.CreateExcelwithoutTemplate("c:\\bbbbbbb.xml",GetDataTable(Sql ));
//载入定义的样式文件bbbbbbb.xml和刚取出来的数据GetDataTable(Sql )
_factory.SaveExcel("c:\\bbbbbbbbbbbbbbbb.xls");
//保存导出的文件即可
}
[Test]
public void ExportWithTemplate()//用到了Excel模版的数据导出
{
string Sql ="Select top 1* from customers ";
//取出一条数据
ExcelFactory _factory = new ExcelFactory("c:\\QStandardCustomer.xls");
//导入模版QStandardCustomer.xls
_factory.CreateExcel("c:\\QStandardCustomer.xml",GetDataTable(Sql ));
//载入定义的样式文件QStandadrCustomer.xml和刚取出来的数据GetDataTable(Sql )
_factory.SaveExcel("c:\\Qreportstr.xls");
//最后保存导出的Excel文件即可
}
private DataTable GetDataTable(string Sql)
{
string myConnectionString = "packet size=4096;user id=sa;data source=172.28.200.98;initial catalog=Northwind";
SqlConnection myConnection = new SqlConnection(myConnectionString);
myConnection.Open();
SqlDataAdapter myAdapter = new SqlDataAdapter();
//取出100条数据
ExcelFactory _factory = new ExcelFactory();
//定义一个没有参数的ExcelFactory
_factory.CreateExcelwithoutTemplate("c:\\bbbbbbb.xml",GetDataTable(Sql ));
//载入定义的样式文件bbbbbbb.xml和刚取出来的数据GetDataTable(Sql )
_factory.SaveExcel("c:\\bbbbbbbbbbbbbbbb.xls");
//保存导出的文件即可
}
[Test]
public void ExportWithTemplate()//用到了Excel模版的数据导出
{
string Sql ="Select top 1* from customers ";
//取出一条数据
ExcelFactory _factory = new ExcelFactory("c:\\QStandardCustomer.xls");
//导入模版QStandardCustomer.xls
_factory.CreateExcel("c:\\QStandardCustomer.xml",GetDataTable(Sql ));
//载入定义的样式文件QStandadrCustomer.xml和刚取出来的数据GetDataTable(Sql )
_factory.SaveExcel("c:\\Qreportstr.xls");
//最后保存导出的Excel文件即可
}
private DataTable GetDataTable(string Sql)
{
string myConnectionString = "packet size=4096;user id=sa;data source=172.28.200.98;initial catalog=Northwind";
SqlConnection myConnection = new SqlConnection(myConnectionString);
myConnection.Open();
SqlDataAdapter myAdapter = new SqlDataAdapter();
SqlCommand myCommand = new SqlCommand(Sql,myConnection);
myCommand.CommandType = CommandType.Text;
myAdapter.SelectCommand = myCommand;
DataSet ds = new DataSet();
myAdapter.Fill(ds);
myConnection.Close();
return ds.Tables[0];
}
}
}
由上面代码可见,一般的报表生成都是三句代码,即使对于报表的某些行,某些格式要调整我们也不需要在去修改程序,只要改xml描述文件即可,这样就可以使我们大大的在报表的生成上来节省时间,而可以把更多的时间放在业务逻辑的处理上了。
| 对此文章发表了评论 |

