private void doExport(DataSet ds, string strExcelFileName)
{
object objOpt = System.Reflection.Missing.Value;//空值
Excel.Application excel = new Excel.Application();//声明一个EXCEL程序
excel.Visible = true;
Excel._Workbook wkb = excel.Workbooks.Add(objOpt);//声明一个工作簿
Excel._Worksheet wks = (_Worksheet)wkb.ActiveSheet;//声明一个工作表
wks.Visible = XlSheetVisibility.xlSheetVisible;
int iSheet=0;
foreach (System.Data.DataTable dt in ds.Tables)
{
int rowIndex = 1;
int colIndex = 0;
string currentSheet = "Sheet"+(++iSheet).ToString();
wks = (_Worksheet)wkb.Worksheets[currentSheet];
wks.Activate();
wks.Name = currentSheet;
wks.Visible = XlSheetVisibility.xlSheetVisible; foreach (DataColumn col in dt.Columns)
{
colIndex++;
excel.Cells[1, colIndex] = col.ColumnName;
} foreach (DataRow row in dt.Rows)
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in dt.Columns)
{
colIndex++;
excel.Cells[rowIndex, colIndex] = "\'" + row[col.ColumnName].ToString();
}
}
} excel.Visible = false;
System.Windows.Forms.MessageBox.Show(strExcelFileName);
wkb.SaveAs(strExcelFileName, objOpt, null, null, false, false, XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);
wkb.Close(false, objOpt, objOpt);//可以编译通过,运行后停在这一行
excel.Quit();
excel = null;
GC.Collect();//垃圾回收
}运行到wkb.close的时候,停住了,并给出出错信息:
Microsoft Office Excel 不能访问文件“E:\ManifestKey\ManifestKey\bin\Release\ManifestKey.EXE\Reports”。 可能的原因有:
• 文件正被其他程序使用。
• 您正要保存的工作簿与当前打开的工作簿同名。
Path.Combine(Application.ExecutablePath,"Reports\\"+txtDateBegin.Text+"-"+txtDateEnd.Text+".XLS")