Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从datagrid复制到Excel并打开文件而不保存_C#_Winforms_Datagrid_Visual Studio 2003 - Fatal编程技术网

C# 将数据从datagrid复制到Excel并打开文件而不保存

C# 将数据从datagrid复制到Excel并打开文件而不保存,c#,winforms,datagrid,visual-studio-2003,C#,Winforms,Datagrid,Visual Studio 2003,我正在研究VS2003 C#WINFORM 我想在我点击按钮的地方,datagrid(不是datagridView)将被复制到Excel文件中,并将被打开(当然有数据),然后用户将选择是否在分析后保存它 try { SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "Excel files

我正在研究VS2003 C#WINFORM

我想在我点击按钮的地方,datagrid(不是datagridView)将被复制到Excel文件中,并将被打开(当然有数据),然后用户将选择是否在分析后保存它

                try
                { 
                    SaveFileDialog sfd = new SaveFileDialog();
                    sfd.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*"  ;
                    sfd.FilterIndex = 1 ;
                    sfd.RestoreDirectory = true ;
                    sfd.Title = "Liste des différés";
                    sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
                    if(sfd.ShowDialog() == DialogResult.OK)
                    {
                        if(sfd.FileName.Length > 0)
                        {
                            string data = null;
                            int i = 0;
                            int j = 0; 

                            Excel.Application xlApp ;
                            Excel.Workbook xlWorkBook ;
                            Excel.Worksheet xlWorkSheet ;
                            object misValue = System.Reflection.Missing.Value;

                            xlApp = new Excel.ApplicationClass();
                            xlWorkBook = xlApp.Workbooks.Add(misValue);
                            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

                            for (i = 0; i <= dsSelectionListeDiffere.Tables[0].Rows.Count - 1; i++)
                            {
                                for (j = 0; j <= dsSelectionListeDiffere.Tables[0].Columns.Count - 1; j++)
                                {
                                    data = dsSelectionListeDiffere.Tables[0].Rows[i].ItemArray[j].ToString();
                                    xlWorkSheet.Cells[i + 1, j + 1] = data;
                                }
                            }


                            // Pass the full path to the SaveAs method
    //                      string fullPathName = Path.Combine(folderName, "csharp.xls");
                            xlWorkBook.SaveAs(sfd.FileNames, Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                            xlWorkBook.Close(true, misValue, misValue);
                            xlApp.Quit();

                            releaseObject(xlWorkSheet);
                            releaseObject(xlWorkBook);
                            releaseObject(xlApp);


                        }

                    }
                }
                catch(Exception ex )
                {
                    MessageBox.Show(ex.Message);
                }



private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }
试试看
{ 
SaveFileDialog sfd=新建SaveFileDialog();
sfd.Filter=“Excel文件(*.xls)|*.xls |所有文件(*.*)|*.”;
sfd.FilterIndex=1;
sfd.RestoreDirectory=true;
sfd.Title=“差异列表”;
sfd.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
if(sfd.ShowDialog()==DialogResult.OK)
{
如果(sfd.FileName.Length>0)
{
字符串数据=null;
int i=0;
int j=0;
Excel.applicationxlapp;
Excel.工作簿;
Excel工作表;
对象错误值=System.Reflection.Missing.Value;
xlApp=new Excel.ApplicationClass();
xlWorkBook=xlApp.Workbooks.Add(错误值);
xlWorkSheet=(Excel.Worksheet)xlWorkBook.Worksheets.get_项(1);

对于(i=0;请发布您的代码。您需要先保存excel文件,然后才能在excel中打开它。不,这不是我搜索的内容,我想复制datagrid(或数据集)这是我使用DialogBox将数据导出到excel的代码:@Meryem,请编辑您的问题,将代码插入其中,而不是作为注释