1

我正在编写一个包含一些数据网格的小型应用程序,我需要将这些网格导出到 MS Excel,它现在运行良好,但是它根本不是一个好的 OO 设计,因为我需要为每个数据网格复制我的代码而不是有一个能够导出到 Excel 的类,这正是我的问题,我不知道如何创建这个类,现在对于我拥有的每个数据网格导出。

//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 和数据网格的类(获取标题名称。可选?)并将其导出到 excel 中,如:

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

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

提前致谢。

4

0 回答 0