在域中C#2008导出EXCEL出错 ,如下是导出代码,不知道是否跟权限有关,如果不在域中却是可以的. 
  private void btnExcel_Click(object sender, EventArgs e)
        {
            string fileName = "Book1";
            string saveFileName = "";
            SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.DefaultExt = "xls";
            saveDialog.Filter = "Excel文件|*.xls";
            saveDialog.FileName = fileName;
            saveDialog.ShowDialog();
            saveFileName = saveDialog.FileName;
            //取消
            int r = 0;
            if (saveFileName.IndexOf(":") < 0)
            {
                return;
            }            //创建Excel对象
            Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            if (xlApp == null)
            {
                MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel");
                return;
            }            Excel.Workbooks workbooks = xlApp.Workbooks;
            //工作簿
            Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
            //Sheet
            Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];            //写入Excel第一行
            Excel.Range Range = worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 3]);//Range对象
            Range.MergeCells = true;//合并单元格
            worksheet.Cells[1, 1] = "销售订单展开表";//单元格内文本
            //Range.Font.Name = "黑体";//字体
            Range.Font.Size = 12;//字体大小            //标题格式
            Microsoft.Office.Interop.Excel.Range Range2 = worksheet.get_Range("A2", "C2");
            //Range2.Font.Name = "黑体";
            Range2.Font.Size = 12;
            Range2.Interior.Pattern = Excel.XlSortType.xlSortValues;
            //上边框加粗            
            Range2.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;
            Range2.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;
            Range2.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;
            Range2.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;            //写入标题
            for (int i = 0; i < dataGridView1.ColumnCount; i++)
            {
                worksheet.Cells[2, i + 1] = dataGridView1.Columns[i].HeaderText;
            }
            //写入数值
            for (r = 0; r < dataGridView1.Rows.Count; r++)
            {
                for (int i = 0; i < dataGridView1.ColumnCount; i++)
                {
                    worksheet.Cells[r + 3, i + 1] = dataGridView1.Rows[r].Cells[i].Value;
                }
                System.Windows.Forms.Application.DoEvents();
            }
            worksheet.Columns.EntireColumn.AutoFit();//列宽自适应
            //保存
            workbook.Saved = true;
            //获得保存路径
            workbook.SaveCopyAs(saveFileName);
            object TM = System.Type.Missing;
            Excel.Application excel = new Excel.Application();
            //打开已经写入值的EXCEL进行操作
            //Excel.Workbook book = excel.Application.Workbooks.Add(saveFileName);
            //Excel.Worksheet sheet = (Excel.Worksheet)book.Sheets[1];
            //要汇总的列
            //int[] totile = new int[1] { 3 };
            //以第二列分组汇总
            //sheet.get_Range(sheet.Cells[2, 1], sheet.Cells[r + 3, 3]).Subtotal(2, Excel.XlConsolidationFunction.xlSum, totile, TM, TM, Excel.XlSummaryRow.xlSummaryBelow);
            //获得写入的总行
            //int count = sheet.UsedRange.Rows.Count;
            //获得A、B、C列
            //string A = "A" + count;
            //string B = "B" + count;
            //string C = "C" + count;
            //Excel.Range RangeA = sheet.get_Range("A2", A);
            //Excel.Range RangeB = sheet.get_Range("B2", B);
            //Excel.Range RangeC = sheet.get_Range("C2", C);            //字体
            //RangeA.Font.Name = "Arial";
            //字体大小
            //RangeA.Font.Size = 8;
            //RangeA.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
            //RangeA.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;
            //RangeC.NumberFormatLocal = "#,##0.00_);(#,##0.00)";//格式
            //RangeC.Font.ColorIndex = 5;//字体颜色
            //边框
            //RangeC.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
            //RangeC.Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeRight).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;
            //sheet.get_Range(A, C).Borders.get_Item(Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom).Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThick;            //是否打开
            excel.Visible = true;
            //保存
            //book.Saved = true;
            //book.SaveCopyAs(saveFileName);
            excel.Quit();
            xlApp.Quit();
            if (excel != null)
            {
                excel.Quit();
            }
            if (xlApp != null)
            {
                xlApp.Quit();
            }
            GC.Collect();//强行销毁
            //MessageBox.Show("Excel导出成功!" + "共写入" + count + "行");
            MessageBox.Show("Excel导出成功!");        }