C# 将数据从datagrid复制到Excel并打开文件而不保存
我正在研究VS2003 C#WINFORM 我想在我点击按钮的地方,datagrid(不是datagridView)将被复制到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
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,请编辑您的问题,将代码插入其中,而不是作为注释