C/S结构,sql Server2000,如何将select的结果(或dataset)保存到本地Excel,不知道用什么控件或者语句!
求代码!!!

解决方案 »

  1.   

    可能要用到saveFileDialog1控件!!
      

  2.   

    以前写过的一段代码,没有整理,直接丢给你了,仅供参考。电脑爆炸,不负任何责任!#region WriteExcel
            /// <summary>
            ///     通过Excel对象形势写入
            /// </summary>
            /// <param name="savePath">保存路径名字</param>
            private void WriteExcel(string savePath, DataTable excelData)
            {
                logger.InfoFormat(ResumeReaderConst.LOG_INFO_METHOD_START, MethodInfo.GetCurrentMethod().Name);            // 创建Excel对象
                Excel.Application myExcel= new Microsoft.Office.Interop.Excel.Application();            try
                {
                    // 打开指定Excel文件
                    Excel.Workbook xlsBook = myExcel.Workbooks.Open(savePath, Missing.Value, Missing.Value, Missing.Value, 
                                                                    Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
                                                                    Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
                                                                    Missing.Value, Missing.Value, Missing.Value);                //指定要操作的Sheet,两种方式
                    //之一:
                    //Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsBook.Sheets[1];
                    //之二:
                    Excel.Worksheet xlsSheet = (Excel.Worksheet)xlsBook.ActiveSheet;                // 写入系统日期
                    Excel.Range rangeSysTime = xlsSheet.get_Range("O1", Type.Missing);
                    rangeSysTime.Value2 = DateTime.Now.ToString();                int nRowCount = excelData.Rows.Count;
                    int nColumnCount = excelData.Columns.Count;                //在单元格中写入数据
                    Excel.Range range = xlsSheet.get_Range("A3", Type.Missing);
                    range = range.get_Resize(nRowCount, nColumnCount);
                    // 转换格式
                    string[,] strTransExcel = new string[nRowCount, nColumnCount];                for (int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++)
                    {
                        for (int nColumnIndex = 0; nColumnIndex < nColumnCount; nColumnIndex++)
                        {
                            strTransExcel[nRowIndex, nColumnIndex] = excelData.Rows[nRowIndex][nColumnIndex].ToString();
                        }
                    }                // 写入数据
                    range.Value2 = strTransExcel;
                    // 保存退出
                    xlsBook.Save();                logger.InfoFormat(ResumeReaderConst.LOG_INFO_METHOD_END, MethodInfo.GetCurrentMethod().Name);
                }
                catch (Exception ex)
                {
                    logger.Error(MethodInfo.GetCurrentMethod().Name, ex);
                    throw ex;
                }
                finally
                {
                    myExcel.Quit();
                    myExcel = null;
                }
            }
            #endregion
      

  3.   

    导出文本文件等多种格式
    实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'
    EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'EXEC master..xp_cmdshell 'bcp "select name from axzq..staff order by name"  queryout d:staffName.xls -c -q -S"." -U"sa" -P"gazx"'
      

  4.   

    楼上,是将服务器上的数据导入到本地的Excel;
      

  5.   

    2楼的方式是可以用的,就是遍历dataset,循环写入excel。
    也可以用oledbconnection连接excel文件,当做数据表操作写入。
      

  6.   

    用oledbconnection操作很方便,但有时候会有一些格式的问题,要加以小心。