当前位置:编程学习 > C#/ASP.NET >>

C# 将DataTable里的数据导出到excel的代码,出了个问题谁能帮我

public class ImportExportToExcel
    {
        private System.Windows.Forms.OpenFileDialog openFileDlg = new System.Windows.Forms.OpenFileDialog();
        private System.Windows.Forms.SaveFileDialog saveFileDlg = new System.Windows.Forms.SaveFileDialog();

        public ImportExportToExcel()
        {
            this.openFileDlg.DefaultExt = "xls";
            this.openFileDlg.Filter = "Excel文件(*.xls)|*.xls";

            this.saveFileDlg.DefaultExt = "xls";
            this.saveFileDlg.Filter = "Excel文件(*.xls)|*.xls";
        }
        public void ExportToExcel(DataSet ds, string strExcelFileName)
        {
            if (ds.Tables.Count == 0 || strExcelFileName == "")
            {
                return;
            }
            doExport(ds, strExcelFileName);
        }

        public void ExportToExcel(DataSet ds)
        {
            if (saveFileDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
            doExport(ds,saveFileDlg.FileName);        
        }

        private void doExport(DataSet ds, string strExcelFileName)
        {

            Excel.Application excel = new Excel.Application();
            int rowIndex = 1;
            int colIndex = 0;
            excel.Application.Workbooks.Add(true);
            System.Data.DataTable table = ds.Tables[0];
            foreach (DataColumn col in table.Columns)
            {
                colIndex++;
                excel.Cells[1, colIndex] = col.ColumnName;
            }

            foreach (DataRow row in table.Rows)
            {
                rowIndex++;
                colIndex = 0;
                foreach (DataColumn col in table.Columns)
                {
                    colIndex++;
                    excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
                }
            }
            excel.Visible = false;
            excel.ActiveWorkbook.SaveAs("C:/Documents and Settings/Administrator/桌面/" + strExcelFileName + ".XLS ", Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);
            excel.Quit();
            excel = null;
            GC.Collect();//垃圾回收 
        } 

    }
上面我是将DataTable里的数据导出到excel的代码,保存得一次后,,再点保存就会提示,要不要替代原来的文件,如果点否或取消就出错了...谁能帮我解决下这问题,先谢谢了. --------------------编程问答-------------------- 保存前先删除原有的文件
或者
换成其它名称 --------------------编程问答-------------------- 不知道业务 你可以随机让它产生名称 --------------------编程问答-------------------- 要是我保存前忘了保存,出错就不好了啊,必竞不是自己用,,是给别人用出错别人又不会. --------------------编程问答--------------------
excel.AlertBeforeOverwriting=false;

//强制覆盖,不弹出是否存在的对话框
--------------------编程问答-------------------- 我也遇到了,现在只有把下面的函数加个捕捉异常 
private void doExport(DataSet ds, string strExcelFileName) 
        { 

            Excel.Application excel = new Excel.Application(); 
            int rowIndex = 1; 
            int colIndex = 0; 
            excel.Application.Workbooks.Add(true); 
            System.Data.DataTable table = ds.Tables[0]; 
            foreach (DataColumn col in table.Columns) 
            { 
                colIndex++; 
                excel.Cells[1, colIndex] = col.ColumnName; 
            } 

            foreach (DataRow row in table.Rows) 
            { 
                rowIndex++; 
                colIndex = 0; 
                foreach (DataColumn col in table.Columns) 
                { 
                    colIndex++; 
                    excel.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString(); 
                } 
            } 
            excel.Visible = false; 
try{
            excel.ActiveWorkbook.SaveAs("C:/Documents and Settings/Administrator/桌面/" + strExcelFileName + ".XLS ", Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null); 
}
 catch (Exception ex)
            {
             }
            finally
            {
            excel.Quit(); 
            excel = null; 
            GC.Collect();//垃圾回收 
              }  --------------------编程问答-------------------- 5楼的,谢谢啊,,挺有用的.呵
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,