欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用winform簡單導(dǎo)出Excel的方法

 更新時間:2016年06月22日 11:35:38   作者:雨竹  
這篇文章主要介紹了C#使用winform簡單導(dǎo)出Excel的方法,結(jié)合實(shí)例形式分析了WinForm操作Excel文件的寫入導(dǎo)出等相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了C#使用winform簡單導(dǎo)出Excel的方法。分享給大家供大家參考,具體如下:

using Excel;

在項(xiàng)目中引入Excel.dll

/// <summary>
/// 導(dǎo)出Excel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnExportExcel_Click(object sender, EventArgs e)
{
  DataTable dt = this.dgvWaterTicket.DataSource;
  if (dt == null)
  {
    return;
  }
  if (dt.Rows.Count == 0)
  {
    return;
  }
  Excel.Application xlApp = new Excel.Application();
  if (xlApp == null)
  {
    MessageBox.Show("請確保您的電腦已經(jīng)安裝Excel", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
  }
  xlApp.UserControl = true;
  Excel.Workbooks workbooks = xlApp.Workbooks;
  //根據(jù)模版產(chǎn)生新的workbook //Workbook workbook = workbooks.Add("D:\\aa.xls");
  Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
  Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
  if (worksheet == null)
  {
    MessageBox.Show("請確保您的電腦已經(jīng)安裝Excel", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
  }
  try
  {
    Excel.Range range;
    long totalCount = dt.Rows.Count;
    long rowRead = 0;
    float percent = 0;
    worksheet.Cells[1, 1] = frm.Text;//導(dǎo)出的標(biāo)題
    worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, dt.]).MergeCells = true; //合并單元格---列數(shù)
    worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 3]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//居中對齊
    worksheet.get_Range(worksheet.Cells[1, 3], worksheet.Cells[1, 3]).ColumnWidth = 15;   //列寬
    worksheet.get_Range(worksheet.Cells[1, 2], worksheet.Cells[1, 2]).ColumnWidth = 15;   //列寬
    worksheet.get_Range(worksheet.Cells[1, 1], worksheet.Cells[1, 1]).ColumnWidth = 20;   //列寬
    //寫入字段
    for (int i = 0; i < dt.Columns.Count; i++)
    {
      worksheet.Cells[2, i + 1] = dt.Columns[i].ColumnName;
      range = (Excel.Range)worksheet.Cells[2, i + 1];
      range.Interior.ColorIndex = 15;
      range.Font.Bold = true;
    }
    //寫入數(shù)值
    for (int r = 0; r < dt.Rows.Count; r++)
    {
      for (int i = 0; i < dt.Columns.Count; i++)
      {
        worksheet.Cells[r + 3, i + 1] = dt.Rows[r][i];
      }
      rowRead++;
      percent = ((float)(100 * rowRead)) / totalCount;
      //System.Threading.Thread.Sleep(500);
      //如果字的數(shù)量過多則自動換行。worksheet.Cells[r+1, 4]為worksheet.Cells[行, 列]
      worksheet.get_Range(worksheet.Cells[r + 3, 4], worksheet.Cells[r + 1, 4]).Columns.WrapText = true;   //自動換行
      worksheet.get_Range(worksheet.Cells[r + 3, 4], worksheet.Cells[r + 3, 4]).Rows.AutoFit(); //自動加行高
      //this.Text = "導(dǎo)出數(shù)據(jù)[" + percent.ToString("0.00") + "%]...";
    }
    range = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[dt.Rows.Count + 2, dt.Columns.Count]);
    range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThin, Excel.XlColorIndex.xlColorIndexAutomatic, null);
    range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;
    range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Excel.XlLineStyle.xlContinuous;
    range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight = Excel.XlBorderWeight.xlThin;
    if (dt.Columns.Count > 1)
    {
      range.Borders[Excel.XlBordersIndex.xlInsideVertical].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;
      range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous;
      range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = Excel.XlBorderWeight.xlThin;
    }
    xlApp.Visible = true;
  }
  catch
  {
    MessageBox.Show("到出Excel失?。?, "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
  }
  finally
  {
    System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(workbooks);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
    //KillProcess("Excel");
    GC.Collect();//強(qiáng)行銷毀
  }
}

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#操作Excel技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)

希望本文所述對大家C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C# WPF使用AForge類庫操作USB攝像頭拍照并保存

    C# WPF使用AForge類庫操作USB攝像頭拍照并保存

    這篇文章主要為大家詳細(xì)介紹了C# WPF使用AForge類庫操作USB攝像頭拍照并保存,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • c# 組合模式

    c# 組合模式

    組合模式:將對象組合成樹形結(jié)構(gòu)以表示‘部分-整體’的層次結(jié)構(gòu)。組合模式使得用戶對單個對象和組合對象的使用具有一致性。需求中式體現(xiàn)部分與整體層次的結(jié)構(gòu)時,統(tǒng)一地使用組合對象中的所有對象時,應(yīng)該考慮使用組合模式
    2012-10-10
  • C#實(shí)現(xiàn)輸入法功能詳解

    C#實(shí)現(xiàn)輸入法功能詳解

    本文主要介紹了C#實(shí)現(xiàn)輸入法的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • C#顯式地實(shí)現(xiàn)接口成員的方法

    C#顯式地實(shí)現(xiàn)接口成員的方法

    這篇文章主要介紹了C#顯式地實(shí)現(xiàn)接口成員的方法,實(shí)例分析了C#接口的相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • C#的Excel導(dǎo)入、導(dǎo)出

    C#的Excel導(dǎo)入、導(dǎo)出

    這篇文章主要為大家詳細(xì)介紹了C#的Excel導(dǎo)入、導(dǎo)出的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • C#實(shí)現(xiàn)簡單的窗口抖動

    C#實(shí)現(xiàn)簡單的窗口抖動

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)簡單的窗口抖動,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • C#集合之鏈表的用法

    C#集合之鏈表的用法

    這篇文章介紹了C#集合之鏈表的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#讀取word中表格數(shù)據(jù)的方法實(shí)現(xiàn)

    C#讀取word中表格數(shù)據(jù)的方法實(shí)現(xiàn)

    本文主要介紹了C#讀取word中表格數(shù)據(jù)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C#在子線程中更新窗口部件的寫法

    C#在子線程中更新窗口部件的寫法

    這篇文章主要介紹了C#在子線程中更新窗口部件的寫法,本文直接給出代碼示例,需要的朋友可以參考下
    2015-06-06
  • C#調(diào)用動態(tài)庫

    C#調(diào)用動態(tài)庫

    本文詳細(xì)講解了C#調(diào)用動態(tài)庫的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論