2014-12-17 3 views
0

Я использую из этой проблемы: http://support.microsoft.com/kb/302084 для экспорта в Excel с Visual C#, и у меня нет никаких проблем.Экспорт excel из visual C#

Чтобы установить границу ячейки я использую ниже кодов:

oSheet = (Excel._Worksheet)oWB.ActiveSheet; 
oSheet.get_Range("A2", "J2").Borders.LineStyle = true; 

и выше код работает хорошо.

, но теперь я хочу установить границу ячейки только для нечетных строк.

так по этой причине я хочу использовать цикл вроде как я определил ниже:

for(i=1,i<=6,i++) 
{ 
    oSheet.get_Range(,).Borders.LineStyle = true; // only for odd rows. 
} 

, но я не знаю, как я должен изменить выше синтаксис, что в каждом цикле его изменения в соответствии с переменной.

+1

Модуль 2 должен возвращать ноль: 'if ((i% 2) == 0)'. Это должно определять четные строки. – JoelC

ответ

0

Для того, чтобы все остальные строки , вы можете переписать цикл for с шагом 2:

for (int i = 1; i <= 6; i+=2)     // only for odd rows. 
{ 
    string c1 = "A" + i.ToString(); 
    string c2 = "J" + i.ToString(); 
    oSheet.get_Range(c1, c2).Borders.LineStyle = true; 
} 
0

C# DataGridView Экспорт в Excel:

 private void button1_Click(object sender, EventArgs e) 
    { 
     string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"; 
     string sql = "SELECT * FROM Authors"; 
     SqlConnection connection = new SqlConnection(connectionString); 
     SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection); 
     DataSet ds = new DataSet(); 
     connection.Open(); 
     dataadapter.Fill(ds, "Authors_table"); 
     connection.Close(); 
     dataGridView1.DataSource = ds; 
     dataGridView1.DataMember = "Authors_table"; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     Excel.Application xlApp; 
     Excel.Workbook xlWorkBook; 
     Excel.Worksheet xlWorkSheet; 
     object misValue = System.Reflection.Missing.Value; 

     Int16 i, j; 

     xlApp = new Excel.ApplicationClass(); 
     xlWorkBook = xlApp.Workbooks.Add(misValue); 

     xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

     for (i = 0; i <= dataGridView1.RowCount - 2; i++) 
     { 
      for (j = 0; j <= dataGridView1.ColumnCount - 1; j++) 
      { 
       xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString(); 
      } 
     } 

     xlWorkBook.SaveAs(@"c:\csharp.net-informations.xls", 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); 
    } 

    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(); 
     } 
    } 

Экспорт Databse в Excel файл

http://csharp.net-informations.com/excel/csharp-excel-export.htm

0

Как я уже говорил в мой комментарий: вам просто нужно проверить остаток от деления на 2, чтобы найдите нечетные или четные строки.

Чтобы только добавить стиль линии границы для нечетных строк (т.е. ваш первый ряд, третий ряд, пятый ряд, и т.д.) что-то похожее на следующий код должен делать:

for(i=1,i<=6,i++) 
{ 
    if ((i % 2) == 1) 
    { 
     oSheet.get_Range(,).Borders.LineStyle = true; // only for odd rows. 
    } 
} 
Смежные вопросы