http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 12058|回复: 3
打印 上一主题 下一主题

[C#语言基础] 分享一个比较好用的ExcelHelper类

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-26 10:29:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示:
1.需要导入 com 里面的 Microsoft Office 12.0 Object Library 或者 Microsoft Office 11.0 Object Library
2.需要导入 .net 里面的 Microsoft.Office.Interop.Excel
直接看代码:代码太长了,放不下, 详细看附件

ExcelHelper.rar (4.48 KB, 下载次数: 821)
  1. using System;
  2. using System.IO;
  3. using System.Data;
  4. using System.Collections;
  5. using System.Data.OleDb;
  6. using System.Web;

  7. using Microsoft.Office.Core;
  8. using Microsoft.Office.Interop.Excel;
  9. using System.Reflection;


  10.   class ExcelHelper
  11.   {
  12.     string myFileName;
  13.      Application myExcel;
  14.      Workbook myWorkBook;

  15.     /// <summary>
  16.     /// 构造函数,不创建Excel工作薄
  17.     /// </summary>
  18.     public ExcelHelper()
  19.     {
  20.     }

  21.     /// <summary>
  22.     /// 创建Excel工作薄
  23.     /// </summary>
  24.     public void CreateExcel()
  25.     {
  26.       myExcel = new  Application();
  27.       myWorkBook = myExcel.Application.Workbooks.Add(true);
  28.     }

  29.     /// <summary>
  30.     /// 显示Excel
  31.     /// </summary>
  32.     public void ShowExcel()
  33.     {
  34.       myExcel.Visible = true;
  35.     }

  36.     /// <summary>
  37.     /// 将数据写入Excel
  38.     /// </summary>
  39.     /// <param name="data">要写入的二维数组数据</param>
  40.     /// <param name="startRow">Excel中的起始行</param>
  41.     /// <param name="startColumn">Excel中的起始列</param>
  42.     public void WriteData(string[,] data, int startRow, int startColumn)
  43.     {
  44.       int rowNumber = data.GetLength(0);
  45.       int columnNumber = data.GetLength(1);

  46.       for (int i = 0; i < rowNumber; i++)
  47.       {
  48.         for (int j = 0; j < columnNumber; j++)
  49.         {
  50.           //在Excel中,如果某单元格以单引号“'”开头,表示该单元格为纯文本,因此,我们在每个单元格前面加单引号。
  51.           myExcel.Cells[startRow + i, startColumn + j] = "'" + data[i, j];
  52.         }
  53.       }
  54.     }

  55.     /// <summary>
  56.     /// 将数据写入Excel
  57.     /// </summary>
  58.     /// <param name="data">要写入的字符串</param>
  59.     /// <param name="starRow">写入的行</param>
  60.     /// <param name="startColumn">写入的列</param>
  61.     public void WriteData(string data, int row, int column)
  62.     {
  63.       myExcel.Cells[row, column] = data;
  64.     }

  65.     /// <summary>
  66.     /// 将数据写入Excel
  67.     /// </summary>
  68.     /// <param name="data">要写入的数据表</param>
  69.     /// <param name="startRow">Excel中的起始行</param>
  70.     /// <param name="startColumn">Excel中的起始列</param>
  71.     public void WriteData(System.Data.DataTable data, int startRow, int startColumn)
  72.     {
  73.       for (int i = 0; i <= data.Rows.Count - 1; i++)
  74.       {
  75.         for (int j = 0; j <= data.Columns.Count - 1; j++)
  76.         {
  77.           //在Excel中,如果某单元格以单引号“'”开头,表示该单元格为纯文本,因此,我们在每个单元格前面加单引号。
  78.           myExcel.Cells[startRow + i, startColumn + j] = "'" + data.Rows[i][j].ToString();
  79.         }
  80.       }
  81.     }

  82.     /// <summary>
  83.     /// 读取指定单元格数据
  84.     /// </summary>
  85.     /// <param name="row">行序号</param>
  86.     /// <param name="column">列序号</param>
  87.     /// <returns>该格的数据</returns>
  88.     public string ReadData(int row, int column)
  89.     {
  90.       Range range = myExcel.get_Range(myExcel.Cells[row, column], myExcel.Cells[row, column]);
  91.       return range.Text.ToString();
  92.     }

  93.     /// <summary>
  94.     /// 向Excel中插入图片
  95.     /// </summary>
  96.     /// <param name="pictureName">图片的绝对路径加文件名</param>
  97.     public void InsertPictures(string pictureName)
  98.     {
  99.       Worksheet worksheet = (Worksheet)myExcel.ActiveSheet;
  100.       //后面的数字表示位置,位置默认
  101.       worksheet.Shapes.AddPicture(pictureName, MsoTriState.msoFalse, MsoTriState.msoTrue, 10, 10, 150, 150);
  102.     }

  103.     /// <summary>
  104.     /// 向Excel中插入图片
  105.     /// </summary>
  106.     /// <param name="pictureName">图片的绝对路径加文件名</param>
  107.     /// <param name="left">左边距</param>
  108.     /// <param name="top">右边距</param>
  109.     /// <param name="width">宽</param>
  110.     /// <param name="heigth">高</param>
  111.     public void InsertPictures(string pictureName, int left, int top, int width, int heigth)
  112.     {
  113.       Worksheet worksheet = (Worksheet)myExcel.ActiveSheet;
  114.       worksheet.Shapes.AddPicture(pictureName, MsoTriState.msoFalse, MsoTriState.msoTrue, top, left, heigth, width);
  115.     }


  116.     /// <summary>
  117.     /// 向Excel中插入图片
  118.     /// </summary>
  119.     /// <param name="pictureName">图片的绝对路径加文件名</param>
  120.     /// <param name="left">左边距</param>
  121.     /// <param name="top">右边距</param>
  122.     /// <param name="width">宽</param>
  123.     /// <param name="heigth">高</param>
  124.     /// <param name="cell1">位置</param>
  125.     public void InsertPictures(string pictureName, int left, int top, int width, int heigth,object cell1) {
  126.       Worksheet worksheet = (Worksheet)myExcel.ActiveSheet;
  127.       Range image1 = worksheet.get_Range(cell1, Missing.Value);
  128.       image1.Select();
  129.       worksheet.Shapes.AddPicture(pictureName, MsoTriState.msoFalse, MsoTriState.msoTrue, top, left, heigth, width);
  130.     }

  131.     /// <summary>
  132.     /// 重命名工作表
  133.     /// </summary>
  134.     /// <param name="sheetNum">工作表序号,从左到右,从1开始</param>
  135.     /// <param name="newSheetName">新的工作表名</param>
  136.     public void ReNameSheet(int sheetNum, string newSheetName)
  137.     {
  138.       Worksheet worksheet = (Worksheet)myExcel.Worksheets[sheetNum];
  139.       worksheet.Name = newSheetName;
  140.     }

  141.     /// <summary>
  142.     /// 重命名工作表
  143.     /// </summary>
  144.     /// <param name="oldSheetName">原有工作表名</param>
  145.     /// <param name="newSheetName">新的工作表名</param>
  146.     public void ReNameSheet(string oldSheetName, string newSheetName)
  147.     {
  148.       Worksheet worksheet = (Worksheet)myExcel.Worksheets[oldSheetName];
  149.       worksheet.Name = newSheetName;
  150.     }

  151.     /// <summary>
  152.     /// 新建工作表
  153.     /// </summary>
  154.     /// <param name="sheetName">工作表名</param>
  155.     public void CreateWorkSheet(string sheetName)
  156.     {
  157.       Worksheet newWorksheet = (Worksheet)myWorkBook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
  158.       newWorksheet.Name = sheetName;
  159.     }

  160.     /// <summary>
  161.     /// 激活工作表
  162.     /// </summary>
  163.     /// <param name="sheetName">工作表名</param>
  164.     public void ActivateSheet(string sheetName)
  165.     {
  166.       Worksheet worksheet = (Worksheet)myExcel.Worksheets[sheetName];
  167.       worksheet.Activate();
  168.     }

  169.     /// <summary>
  170.     /// 激活工作表
  171.     /// </summary>
  172.     /// <param name="sheetNum">工作表序号</param>
  173.     public void ActivateSheet(int sheetNum)
  174.     {
  175.       Worksheet worksheet = (Worksheet)myExcel.Worksheets[sheetNum];
  176.       worksheet.Activate();
  177.     }

  178.     /// <summary>
  179.     /// 删除一个工作表
  180.     /// </summary>
  181.     /// <param name="SheetName">删除的工作表名</param>
  182.     public void DeleteSheet(int sheetNum)
  183.     {
  184.       ((Worksheet)myWorkBook.Worksheets[sheetNum]).Delete();
  185.     }

  186.     /// <summary>
  187.     /// 删除一个工作表
  188.     /// </summary>
  189.     /// <param name="SheetName">删除的工作表序号</param>
  190.     public void DeleteSheet(string sheetName)
  191.     {
  192.       ((Worksheet)myWorkBook.Worksheets[sheetName]).Delete();
  193.     }

  194.     /// <summary>
  195.     /// 合并单元格
  196.     /// </summary>
  197.     /// <param name="startRow">起始行</param>
  198.     /// <param name="startColumn">起始列</param>
  199.     /// <param name="endRow">结束行</param>
  200.     /// <param name="endColumn">结束列</param>
  201.     public void CellsUnite(int startRow, int startColumn, int endRow, int endColumn)
  202.     {
  203.       Range range = myExcel.get_Range(myExcel.Cells[startRow, startColumn], myExcel.Cells[endRow, endColumn]);
  204.       range.MergeCells = true;
  205.     }

  206.     /// <summary>
  207.     /// 单元格文字对齐方式
  208.     /// </summary>
  209.     /// <param name="startRow">起始行</param>
  210.     /// <param name="startColumn">起始列</param>
  211.     /// <param name="endRow">结束行</param>
  212.     /// <param name="endColumn">结束列</param>
  213.     /// <param name="hAlign">水平对齐</param>
  214.     /// <param name="vAlign">垂直对齐</param>
  215.     public void CellsAlignment(int startRow, int startColumn, int endRow, int endColumn, ExcelHAlign hAlign, ExcelVAlign vAlign)
  216.     {
  217.       Range range = myExcel.get_Range(myExcel.Cells[startRow, startColumn], myExcel.Cells[endRow, endColumn]);
  218.       range.HorizontalAlignment = hAlign;
  219.       range.VerticalAlignment = vAlign;
  220.     }

  221.     /// <summary>
  222.     /// 绘制指定单元格的边框
  223.     /// </summary>
  224.     /// <param name="startRow">起始行</param>
  225.     /// <param name="startColumn">起始列</param>
  226.     /// <param name="endRow">结束行</param>
  227.     /// <param name="endColumn">结束列</param>
  228.     public void CellsDrawFrame(int startRow, int startColumn, int endRow, int endColumn)
  229.     {
  230.       CellsDrawFrame(startRow, startColumn, endRow, endColumn,
  231.           true, true, true, true, true, true, false, false,
  232.           LineStyle.连续直线, BorderWeight.细, ColorIndex.自动);
  233.     }



复制代码


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
发表于 2013-9-3 12:48:45 | 只看该作者
能不能载一图片来看一下效果呢!
看一下是不是我想要的呢

板凳
发表于 2015-12-17 20:00:42 | 只看该作者
强烈支持楼主ing……
地板
发表于 2016-11-19 13:32:54 | 只看该作者
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-16 05:11

© 2014-2021

快速回复 返回顶部 返回列表