我正在编写一个包含一些数据网格的小应用程序,我需要将该网格导出到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名称。可选?)并将其导出为excel像:
Exportme myexport = new Exportme(grid1,list1);
myexport.export();
Exportme myexport2 = new Exportme(grid2,list2);
myexport2.export();
而不是使用我目前的复制粘贴技术:(
提前致谢。