簡體   English   中英

從Visual C#導出Excel

[英]Export excel from visual c#

我從以下問題開始使用: http : //support.microsoft.com/kb/302084從Visual C#導出到excel,我沒有任何問題。

要設置單元格邊框,請使用以下代碼:

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

以上代碼運行良好。

但是現在我只想為奇數行設置單元格邊框。

因此,出於這個原因,我想像下面定義的那樣使用for循環:

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

但我不知道我該如何更改上述語法,即在每個循環中根據變量進行更改。

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

將數據庫導出到Excel文件

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

正如我在評論中提到的那樣:您只需要檢查除以2的余數即可找到奇數或偶數行。

要僅為奇數行(例如,第一行,第三行,第五行等)添加邊框線樣式,應執行類似於以下代碼的操作:

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

要獲取其他所有行,可以使用步驟2重寫for循環:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM