使用OOP设计将Silverlight数据网格导出为ex​​cel

时间:2012-11-09 18:31:43

标签: c# silverlight oop datagrid export-to-excel

我正在编写一个包含一些数据网格的小应用程序,我需要将该网格导出到MS Excel,它现在工作正常,但它根本不是一个好的OO设计,因为我需要为每个复制我的代码datagrid而不是有一个能够导出到Excel的类,这正是我的问题,我现在无法弄清楚如何为每个datagrid导出创建这个类。

//Save dialog...create workbook... datashee, etc...
//Now.. fill the Excel with the datagrid info.
//To create the headers in a grid independent way I have
for (int i = 0; i < gridgui.Columns.Count; i  ) worksheet.Cells[0, i] = new Cell(gridgui.Columns[i].Header);

//My problem is... I dont know how to fill the content in a Source independent way, and I have fixed properties like this:
int renglon = 1;
foreach (dataStuff reg in infogrid) 
//dataStuff is my class that fills the ObservableCollection called infrogrid
{
    if (reg.Product != null)
    {
        worksheet.Cells[renglon, 0] = new Cell(reg.Product);
        worksheet.Cells[renglon, 1] = new Cell(reg.Price);
        renglon++;
    }
}

这种方法现在工作得很好,但我知道这不是最好的方法,我的想法是有一个接收ObservableCollection和数据网格的类(获取Headers名称。可选?)并将其导出为ex​​cel像:

Exportme myexport = new Exportme(grid1,list1);
myexport.export();
Exportme myexport2 = new Exportme(grid2,list2);
myexport2.export();

而不是使用我目前的复制粘贴技术:(

提前致谢。

0 个答案:

没有答案