C# Excel 单元格编辑

public class ExcelReport
    {
  //Excel 文件修改要引用COM组件Microsoft Excel 11.0 Object Library
  //using Microsoft.Office.Interop.Excel;
  /// <summary>
        /// 单元格修改
        /// </summary>
        /// <param name="filePath">excel路径</param>
  public void writeExcelEdit(string filePath)
  {
   Application myExcel = null;//引用Excel Application类別
            Workbook myBook = null;//引用活页簿类別
            Worksheet mySheet = null;//引用工作表类別
            Range myRange = null;//引用Range类別
            try
            {
                myExcel = new Application();//实例化Excel Application
                myBook = myExcel.Workbooks._Open(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                myExcel.DisplayAlerts = false;//停用警告
                myExcel.Visible = false;      //Excel 不可见
                mySheet = myBook.Worksheets[1];//Excel文件打开工作簿的第一个文件
    
    int rowindex = 1;//要修改的单元格行
                int columnIndex = 2;//单元格列
    {//修改单元格
     myRange = mySheet.Cells[rowindex, columnIndex];
                    myRange.Value = 12;//把坐标是[1,2]的单元格值修改成12
    }
    {//修改单元格引用函数=Sum(A1:A3)
     myRange = mySheet.Cells[rowindex, columnIndex];
                    string strColName1 = getExcelColumnLabel(cindex + 1);
                    myRange.Formula = string.Format("=SUM({0}:{1})", strColName1 + (rindex-3), strColName1 + (rindex - 1));
    }
    
    myBook.SaveAs(filePath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                myBook.Close(false, Type.Missing, Type.Missing);//关闭
                myExcel.Quit();//关闭Excel
                System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);//释放Excel资源
   }
   catch(Exception ex)
   {
    throw new Exception(ex);
   }
   finally
   {
    myRange = null;
                mySheet = null;
                myBook = null;
                myExcel = null;
                GC.Collect();//强制垃圾回收
   }
  }
  
  //
  //单元格格式修改都可以用Range类来实现
  //
  
  /// <summary>
        /// 根据列编号获取列别名
        /// </summary>
        /// <param name="num">列编号(从0开始)</param>
        /// <returns></returns>
        private String getExcelColumnLabel(int num)
        {
            String temp = "";
            double i = Math.Floor(Math.Log(25.0 * (num) / 26.0 + 1) / Math.Log(26)) + 1;
            if (i > 1)
            {
                double sub = num - 26 * (Math.Pow(26, i - 1) - 1) / 25;
                for (double j = i; j > 0; j--)
                {
                    //temp = temp + (char)(sub / Math.Pow(26, j - 1) + 65);//列号从0开始
                    temp = temp + (char)(sub / Math.Pow(26, j - 1) + 64);  //列号从1开始
                    sub = sub % Math.Pow(26, j - 1);
                }
            }
            else
            {
                //temp = temp + (char)(num + 65);//列号从0开始
                temp = temp + (char)(num + 64);  //列号从1开始
            }
            return temp;
        }
    }

C# Excel 单元格编辑

时间: 2024-08-08 21:55:28

C# Excel 单元格编辑的相关文章

Excel 单元格自定义格式技巧总结

第一部分 Excel 中的单元格格式是一个最基本但是又很高级的技能,说它基本是因为我们几乎天天都会用到它,会用它来设置一些简单的格式,比如日期,文本等等:高级是因为利用 Excel 单元格的自定义格式我们可以实现一些看起来非常神奇和有用的效果.下面我们就由浅入深的来介绍一下 Excel 单元格自定义格式的知识和技巧. 1."G/通用格式" 以常规的数字显示,相当于"分类"列表中的"常规"选项. 代码:G/通用格式.10 显示为 10:10.1 显

Excel单元格的输入技巧1

今天来跟大家分享在EXCEL 工作表单元个里面的一些输入技巧,这些不起眼的小技巧,看似简单,但对提高工作效率,也是有很大作用的. 1 复制上一个单元格内容(列方向)ctrl+d.比如你在B4 单元格输入字符A,然后到B5单元格进入编辑状态,然后按ctrl+d就会复制B4单元格的字符A, 亦或你从B4开始向下选取至Bn单元格,然后按ctrl+d:这个区域单元格的内容都会变成字符A.如图. 2复制前一个单元格内容(行方向)ctr+r. 方法同上,只是快捷键不一样.如图. 3单元格内换行Alt+ent

Excel单元格内容太多会覆盖遮住下一单元格范围

Excel单元格内容太多会覆盖遮住下一单元格范围分步阅读 Excel中的单元格内容,有着不同的对齐方式.用户可根据自己的需求,在处理数据的时候,自行设置所需要的对齐方式. 当您在处理数据的时候,如果设置不当,就会遇到这样的问题:Excel单元格内容太多会覆盖遮住下一单元格范围. 可以通过如下的方法来解决. 方法/步骤 如下图,B2单元格,仅输入了几个中文,但是,由于列的宽度不够,因此,该单元格的内容会延伸到下一单元格并覆盖了下一单元格的范围.从而影响了下一单元格的输入与修改. 此时,我们需要的方

excel单元格中批量加入固定字符

excel单元格前怎么批量加字母 现在我要在联系人这列,每个姓名前加入衡阳的首字母简写(HY). 3 在同行上面随便找列,我找D列.输入公式:="HY"&A2. 5 输入后,点击回车.出现 “HY黑米哥” 6 单元格的下方不是有一个小方点吗,按着鼠标左键往下拖动直到结束 切记,此时不能直接把做好的复制粘贴过去,因为此时为公式,不是数值.可以用鼠标点击一下,上面显示公式. 方法一:选择性粘贴. 方法二:记事本方法.把处理好的数据复制,粘贴到记事本中. 全选记事本数据,复制.粘贴回

MFC List Control控件添加单元格编辑和单元格下拉列表项以适用于数据库相关操作

作为现代的软件,往往是连着数据库的,而连着和用户方便地操作之间,还有着界面这道坎.MFC是Windows上比较好开发用户界面的框架,然而其自带的控件中没有对于数据库表格支持较好的控件,而使用网上提到的 DataGrid 等控件在本人的win8.1+VS2013平台上老出现找不到控件或者头文件的问题,搞的烦死人.最后想到 List Control 控件只要稍作修改,加上单元格编辑和单元格下拉列表,其实就能和数据库进行良好的对接,一百度,果然有人已经做了这件事,实在是太让人感动了!       

NPOI Excel 单元格背景颜色对照表

NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillPattern 为单元格背景色的填充样式. NPOI Excel 单元格背景颜色设置方法以及颜色对照表: 1 2 3 4 5 6 ICellStyle style = workbook.CreateCellStyle(); style.FillForegroundColor = NPOI.HSSF.U

C# 导入图片到Excel单元格

导出Excel功能时需要将数据中含有图片也导出到excel单元格中 public void InsertPicture(string RangeName, string PicturePath, Microsoft.Office.Interop.Excel.Worksheet worksheet) { Microsoft.Office.Interop.Excel.Range m_objRange = worksheet.get_Range(RangeName, Type.Missing); m_

poi设置一个Excel单元格的内容为多种样式的方法

有的时候我们POI操作Excel时,需要将Excel单元格的内容设置为多种样式,比如:设置单元格的内容为两种颜色,方法如下: //定义字体 HSSFFont redFont = (HSSFFont) workbook.createFont(); redFont.setColor(HSSFColor.RED.index);// 红色 HSSFFont blueFont = (HSSFFont) workbook.createFont(); redFont.setColor(HSSFColor.BL

jqGrid单元格编辑详解

单元格编辑 单元格编辑提供给用户修改一行中的单个单元格内容的功能,开发者可以通过ajax或者单元格编辑事件对修改的数据进行处理. 通过下面的行为,单元格编辑支持键盘导航和执行单元格编辑操作 点击一个不可编辑的单元格会选中它,然后可以通过上下左右键移动到其他单元格 当移动到一个可编辑的单元格,可以按下Enter键将单元格切换到编辑模式.当再次按下Enter键,或者tab,点击其他单元格将会执行保存操作.按下Esc键取消编辑并且恢复为之前的值.当编辑一个单元格时,光标键始终在此单元格内. 点击可编辑