比如一EXCEL文件里内容是地点 编号 名称
南京 T001 张三   
南京 T002 李四
长沙 T003 王五
长沙 T004 赵六希望能根据第一列生成两个文件,分别是:
地点 编号 名称
南京 T001 张三   
南京 T002 李四
地点 编号 名称
长沙 T003 王五
长沙 T004 赵六希望大家帮忙给个主意怎么弄好?看别人有很多代码都是导入到DATAGRIDVIEW再导出的,我这个怎么来套用呢?
还有就是导出EXCEL文件怎么做到不显示EXCEL界面和保存按钮什么的直接就生成啊?

解决方案 »

  1.   

    1,读入DataTable(和DataGridView没有关系)
    2,用DataView对DataTable进行筛选,按筛选结果分别导出到Excel不显示Excel界面:
    Excel.Application app = new Excel.Application();
    app.Visible = false;保存:
    workBook.SaveAs(path, objMissing, objMissing, objMissing, objMissing, objMissing, Excel.XlSaveAsAccessMode.xlNoChange, objMissing,
                    objMissing, objMissing, objMissing);
      

  2.   

    导出XML文件实现数据更好
    excel实现多sheet
    Excel.Application app = new Excel.ApplicationClass();   
    app.Visible = true;   
    Excel.Workbook workBook = app.Workbooks.Open(templetFile,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);   
    Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);   
    for(int i=1;i <sheetCount;i++)   
    {   
    ((Excel.Worksheet)workBook.Worksheets.get_Item(i)).Copy(missing,workBook.Worksheets[i]);   
     
      

  3.   

    读取EXCEL数据到dataset等
    再遍历实现多sheet
    Excel.Application app = new Excel.ApplicationClass();   
    app.Visible = true;   
    Excel.Workbook workBook = app.Workbooks.Open(templetFile,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);   
    Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);   
    for(int i=1;i <sheetCount;i++)   
    {   
    ((Excel.Worksheet)workBook.Worksheets.get_Item(i)).Copy(missing,workBook.Worksheets[i]);   
     
    }   app .Visible = false; 
    app .ActiveWorkbook.SaveAs(fileName, Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null); 
    app .Quit(); 
    app = null; 
      

  4.   

    用筛选,
    或者在excel中以第一列排序,剪切粘贴