最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本文實(shí)例講述了C#使用winform簡(jiǎn)單導(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("請(qǐng)確保您的電腦已經(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("請(qǐng)確保您的電腦已經(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;//居中對(duì)齊
    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ù)量過多則自動(dòng)換行。worksheet.Cells[r+1, 4]為worksheet.Cells[行, 列]
      worksheet.get_Range(worksheet.Cells[r + 3, 4], worksheet.Cells[r + 1, 4]).Columns.WrapText = true;   //自動(dòng)換行
      worksheet.get_Range(worksheet.Cells[r + 3, 4], worksheet.Cells[r + 3, 4]).Rows.AutoFit(); //自動(dòng)加行高
      //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é)

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

相關(guān)文章

  • 詳解C#實(shí)例化對(duì)象的三種方式及性能對(duì)比

    詳解C#實(shí)例化對(duì)象的三種方式及性能對(duì)比

    這篇文章主要介紹了C#實(shí)例化對(duì)象的三種方式及性能對(duì)比,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • VMS中解協(xié)議常用方法備忘(小結(jié))

    VMS中解協(xié)議常用方法備忘(小結(jié))

    這篇文章主要介紹了VMS中解協(xié)議常用方法備忘(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 基于C#制作一個(gè)顏色拾取器

    基于C#制作一個(gè)顏色拾取器

    這篇文章主要為大家詳細(xì)介紹了如何基于C#制作一個(gè)顏色拾取器,可以獲取屏幕上任意位置像素的色值,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下
    2024-01-01
  • C#使用DLLImport調(diào)用外部DLL的方法

    C#使用DLLImport調(diào)用外部DLL的方法

    這篇文章介紹了C#使用DLLImport調(diào)用外部DLL的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C#使用CallContext緩存線程數(shù)據(jù)

    C#使用CallContext緩存線程數(shù)據(jù)

    這篇文章介紹了C#使用CallContext緩存線程數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C# 無邊框窗體之窗體移動(dòng)實(shí)現(xiàn)代碼

    C# 無邊框窗體之窗體移動(dòng)實(shí)現(xiàn)代碼

    這篇文章介紹了C# 無邊框窗體之窗體移動(dòng)實(shí)現(xiàn)代碼,有需要的朋友可以參考一下
    2013-10-10
  • WinForm IP地址輸入框控件實(shí)現(xiàn)

    WinForm IP地址輸入框控件實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了WinForm IP地址輸入框控件的實(shí)現(xiàn)代碼,基于VS2010模擬windows系統(tǒng)自帶IP輸入框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 10個(gè)C#程序員經(jīng)常用到的實(shí)用代碼片段

    10個(gè)C#程序員經(jīng)常用到的實(shí)用代碼片段

    如果你是一個(gè)C#程序員,那么本文介紹的10個(gè)C#常用代碼片段一定會(huì)給你帶來幫助,從底層的資源操作,到上層的UI應(yīng)用,這些代碼也許能給你的開發(fā)節(jié)省不少時(shí)間。以下是原文:
    2015-09-09
  • ASP.Net動(dòng)態(tài)讀取Excel文件最簡(jiǎn)方法

    ASP.Net動(dòng)態(tài)讀取Excel文件最簡(jiǎn)方法

    本篇文章給大家分享了ASP.Net動(dòng)態(tài)讀取Excel文件最簡(jiǎn)方法,對(duì)此有需要的讀者們參考學(xué)習(xí)下。
    2018-05-05
  • C#把數(shù)組中的某個(gè)元素取出來放到第一個(gè)位置的實(shí)現(xiàn)方法

    C#把數(shù)組中的某個(gè)元素取出來放到第一個(gè)位置的實(shí)現(xiàn)方法

    這篇文章主要介紹了C#把數(shù)組中的某個(gè)元素取出來放到第一個(gè)位置的實(shí)現(xiàn)方法,涉及C#針對(duì)數(shù)組的常見操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

济宁市| 临邑县| 竹山县| 如皋市| 麻栗坡县| 楚雄市| 潜山县| 太谷县| 垣曲县| 牡丹江市| 巴中市| 定南县| 上虞市| 渝北区| 布尔津县| 汉中市| 汝南县| 石林| 丘北县| 淮滨县| 尼木县| 盐山县| 凌源市| 肥西县| 突泉县| 镇赉县| 九寨沟县| 临邑县| 吉木乃县| 林口县| 北安市| 广水市| 镶黄旗| 屯昌县| 沐川县| 禹州市| 平武县| 冷水江市| 神农架林区| 石嘴山市| 康定县|