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#