2013-10-08 12 views
0

Мне нужно выйти с программой для экспорта выбранных строк datagridview, чтобы преуспеть с соответствующими заголовками. Я экспортировал весь datagridview в excel, но теперь я хочу сделать это только с выбранной строкой. Как мне это сделать?Экспорт выбранных строк datagridview в excel

вот мои коды для экспорта всей DataGridView, чтобы преуспеть

собственной недействительным GenerateExcel (DataTable Таблица3, строка excelSheetName) {

 string fileName = "TestingofDSI"; 
     //string currentDirectorypath = "C:\testingdsi"; 
     string currentDirectorypath = Environment.CurrentDirectory; 
     string finalFileNameWithPath = string.Empty; 

     fileName = string.Format("{0}_{1}", fileName, DateTime.Now.ToString("dd-MM-yyyy")); 
     finalFileNameWithPath = string.Format("{0}\\{1}.xlsx", currentDirectorypath, fileName); 


     var newFile = new FileInfo(finalFileNameWithPath); 


     using (var package = new ExcelPackage(newFile)) 
     { 

      ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(excelSheetName); 


      if (table != null) 
      { 

       worksheet.Cells["A1"].LoadFromDataTable(table3, true, OfficeOpenXml.Table.TableStyles.Medium2); 
       //worksheet.Cells["A1"].LoadFromDataTable(table, true, TableStyles.None); 


       /* package.Workbook.Properties.Title = @"This code is part of tutorials available at http://bytesofcode.hubpages.com"; 
        package.Workbook.Properties.Author = "Bytes Of Code"; 
        package.Workbook.Properties.Subject = @"Register here for more http://hubpages.com/_bytes/user/new/";*/ 


       package.Save(); 

       MessageBox.Show(string.Format("File name '{0}' generated successfully.", fileName) 
        , "File generated successfully!", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      } 
      else 
      { 

       MessageBox.Show("please load data from database!"); 

    } 


     } 
    } 

// код для связывания данных

private void loadButton_Click(object sender, EventArgs e) 
    { 
      GetData(" select * from jacksonpc.product;"); 
      dataGridView1.DataSource = bindingSource1; 
    } 

    private void GetData(string selectCommand) 
     { 
     try 
     { 
      // Specify a connection string. Replace the given value with a 
      // valid connection string for a Northwind SQL Server sample 
      // database accessible to your system. 
      String connectionString = "datasource=localhost;port=3306;username=root;password=1234"; 

      // Create a new data adapter based on the specified query. 
      dataAdapter = new MySqlDataAdapter(selectCommand, connectionString); 

      // Create a command builder to generate SQL update, insert, and 
      // delete commands based on selectCommand. These are used to 
      // update the database. 
      MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter); 

      // Populate a new data table and bind it to the BindingSource. 
      table = new DataTable(); 
      table.Locale = System.Globalization.CultureInfo.InvariantCulture; 
      dataAdapter.Fill(table); 
      bindingSource1.DataSource = table; 



      /* table2 = new DataTable(); 
      table2.Locale = System.Globalization.CultureInfo.InvariantCulture; 
      dataAdapter.Fill(table2); 
      bindingSource2.DataSource = table2; 
      // Resize the DataGridView columns to fit the newly loaded content.*/ 

         dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader); 
     } 
     catch (MySqlException ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
+0

Добавлен ли какой-либо флажок, чтобы выбрать ряд? – Arshad

+0

@ Аршад, я должен это сделать? есть ли другой альтернативный способ? – user2837847

+0

, так как вы будете идентифицировать выбранные строки, если пользователь хочет выбрать несколько строк. – Arshad

ответ

0

Вы можете изменить datagridviewSelectionMode Недвижимость в конструкторе или

dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
Затем пользователь будет иметь возможность выбрать несколько строк, которые помощь CTRL или Shift на вас Метод печати вы должны создать DataTable с выбранными строками:

foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
{ 
    //Create a DataTable with same column name 
    //fill each column like row.Cells[1].Value.ToString();    

} 
+0

как это экспортирует выбранные строки в excel ?? я могу выбрать несколько, но не могу извлечь их в excel .. – user2837847

+1

Сначала вам нужно создать datatable, а затем создать новые строки, добавить новые строки в datatable ... – Arshad

+0

После этого вызовите print(), передав вновь созданный datatable – Arshad

Смежные вопросы