.NET的ExcelOperate
- using System;
- using System.Web;
- using Excel = Microsoft.Office.Interop.Excel;
- namespace Comm
- {
- /// <summary>
- /// ExcelOperate 的摘要说明。Excel操作函数
- /// </summary>
- public class ExcelOperate
- {
- private object mValue = System.Reflection.Missing.Value;
- public ExcelOperate()
- {
- //
- // TODO: 在此处添加构造函数逻辑
- //
- }
- /// <summary>
- /// 合并单元格
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void Merge(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Merge(mValue);
- }
- /// <summary>
- /// 设置连续区域的字体大小
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="strStartCell">开始单元格</param>
- /// <param name="strEndCell">结束单元格</param>
- /// <param name="intFontSize">字体大小</param>
- public void SetFontSize(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, int intFontSize)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Font.Size = intFontSize.ToString();
- }
- /// <summary>
- /// 横向打印
- /// </summary>
- /// <param name="CurSheet"></param>
- public void xlLandscape(Excel._Worksheet CurSheet)
- {
- CurSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;
- }
- /// <summary>
- /// 纵向打印
- /// </summary>
- /// <param name="CurSheet"></param>
- public void xlPortrait(Excel._Worksheet CurSheet)
- {
- CurSheet.PageSetup.Orientation = Excel.XlPageOrientation.xlPortrait;
- }
- /// <summary>
- /// 在指定单元格插入指定的值
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="Cell">单元格 如Cells[1,1]</param>
- /// <param name="objValue">文本、数字等值</param>
- public void WriteCell(Excel._Worksheet CurSheet, object objCell, object objValue)
- {
- CurSheet.get_Range(objCell, mValue).Value2 = objValue;
- }
- /// <summary>
- /// 在指定Range中插入指定的值
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="StartCell">开始单元格</param>
- /// <param name="EndCell">结束单元格</param>
- /// <param name="objValue">文本、数字等值</param>
- public void WriteRange(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, object objValue)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Value2 = objValue;
- }
- /// <summary>
- /// 合并单元格,并在合并后的单元格中插入指定的值
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- /// <param name="objValue">文本、数字等值</param>
- public void WriteAfterMerge(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, object objValue)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Merge(mValue);
- CurSheet.get_Range(objStartCell, mValue).Value2 = objValue;
- }
- /// <summary>
- /// 为单元格设置公式
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objCell">单元格</param>
- /// <param name="strFormula">公式</param>
- public void SetFormula(Excel._Worksheet CurSheet, object objCell, string strFormula)
- {
- CurSheet.get_Range(objCell, mValue).Formula = strFormula;
- }
- /// <summary>
- /// 单元格自动换行
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void AutoWrapText(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).WrapText = true;
- }
- /// <summary>
- /// 设置整个连续区域的字体颜色
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- /// <param name="clrColor">颜色</param>
- public void SetColor(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, System.Drawing.Color clrColor)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Font.Color = System.Drawing.ColorTranslator.ToOle(clrColor);
- }
- /// <summary>
- /// 设置整个连续区域的单元格背景色
- /// </summary>
- /// <param name="CurSheet"></param>
- /// <param name="objStartCell"></param>
- /// <param name="objEndCell"></param>
- /// <param name="clrColor"></param>
- public void SetBgColor(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, System.Drawing.Color clrColor)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Interior.Color = System.Drawing.ColorTranslator.ToOle(clrColor);
- }
- /// <summary>
- /// 设置连续区域的字体名称
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- /// <param name="fontname">字体名称 隶书、仿宋_GB2312等</param>
- public void SetFontName(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, string fontname)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Font.Name = fontname;
- }
- /// <summary>
- /// 设置连续区域的字体为黑体
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void SetBold(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Font.Bold = true;
- }
- /// <summary>
- /// 设置连续区域的边框:上下左右都为黑色连续边框
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void SetBorderAll(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeTop].Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeBottom].Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeLeft].Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeRight].Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlInsideHorizontal].Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle = Excel.XlLineStyle.xlContinuous;
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlInsideVertical].Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightGray);
- CurSheet.get_Range(objStartCell, objEndCell).Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous;
- }
- /// <summary>
- /// 设置连续区域水平居中
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void SetHAlignCenter(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
- }
- /// <summary>
- /// 设置连续区域水平居左
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void SetHAlignLeft(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;
- }
- /// <summary>
- /// 设置连续区域水平居右
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- public void SetHAlignRight(Excel._Worksheet CurSheet, object objStartCell, object objEndCell)
- {
- CurSheet.get_Range(objStartCell, objEndCell).HorizontalAlignment = Excel.XlHAlign.xlHAlignRight;
- }
- /// <summary>
- /// 设置连续区域的显示格式
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- /// <param name="strNF">如"#,##0.00"的显示格式</param>
- public void SetNumberFormat(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, string strNF)
- {
- CurSheet.get_Range(objStartCell, objEndCell).NumberFormat = strNF;
- }
- /// <summary>
- /// 设置列宽
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="strColID">列标识,如A代表第一列</param>
- /// <param name="dblWidth">宽度</param>
- public void SetColumnWidth(Excel._Worksheet CurSheet, string strColID, double dblWidth)
- {
- ((Excel.Range)CurSheet.Columns.GetType().InvokeMember("Item", System.Reflection.BindingFlags.GetProperty, null, CurSheet.Columns, new object[] { (strColID + ":" + strColID).ToString() })).ColumnWidth = dblWidth;
- }
- /// <summary>
- /// 设置列宽
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- /// <param name="dblWidth">宽度</param>
- public void SetColumnWidth(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, double dblWidth)
- {
- CurSheet.get_Range(objStartCell, objEndCell).ColumnWidth = dblWidth;
- }
- /// <summary>
- /// 设置行高
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objStartCell">开始单元格</param>
- /// <param name="objEndCell">结束单元格</param>
- /// <param name="dblHeight">行高</param>
- public void SetRowHeight(Excel._Worksheet CurSheet, object objStartCell, object objEndCell, double dblHeight)
- {
- CurSheet.get_Range(objStartCell, objEndCell).RowHeight = dblHeight;
- }
- /// <summary>
- /// 为单元格添加超级链接
- /// </summary>
- /// <param name="CurSheet">Worksheet</param>
- /// <param name="objCell">单元格</param>
- /// <param name="strAddress">链接地址</param>
- /// <param name="strTip">屏幕提示</param>
- /// <param name="strText">链接文本</param>
- public void AddHyperLink(Excel._Worksheet CurSheet, object objCell, string strAddress, string strTip, string strText)
- {
- CurSheet.Hyperlinks.Add(CurSheet.get_Range(objCell, objCell), strAddress, mValue, strTip, strText);
- }
- /// <summary>
- /// 另存为xls文件
- /// </summary>
- /// <param name="CurBook">Workbook</param>
- /// <param name="strFilePath">文件路径</param>
- public void Save(Excel._Workbook CurBook, string strFilePath)
- {
- CurBook.SaveCopyAs(strFilePath);
- }
- /// <summary>
- /// 保存文件
- /// </summary>
- /// <param name="CurBook">Workbook</param>
- /// <param name="strFilePath">文件路径</param>
- public void SaveAs(Excel._Workbook CurBook, string strFilePath)
- {
- CurBook.SaveAs(strFilePath, mValue, mValue, mValue, mValue, mValue, Excel.XlSaveAsAccessMode.xlShared, mValue, mValue, mValue, mValue, mValue);
- }
- /// <summary>
- /// 另存为html文件
- /// </summary>
- /// <param name="CurBook">Workbook</param>
- /// <param name="strFilePath">文件路径</param>
- public void SaveHtml(Excel._Workbook CurBook, string strFilePath)
- {
- CurBook.SaveAs(strFilePath, Excel.XlFileFormat.xlHtml, mValue, mValue, mValue, mValue, Excel.XlSaveAsAccessMode.xlNoChange, mValue, mValue, mValue, mValue, mValue);
- }
- /// <summary>
- /// 释放内存
- /// </summary>
- public void Dispose(Excel._Worksheet CurSheet, Excel._Workbook CurBook, Excel._Application CurExcel)
- {
- try
- {
- System.Runtime.InteropServices.Marshal.ReleaseComObject(CurSheet);
- CurSheet = null;
- CurBook.Close(false, mValue, mValue);
- System.Runtime.InteropServices.Marshal.ReleaseComObject(CurBook);
- CurBook = null;
- CurExcel.Quit();
- System.Runtime.InteropServices.Marshal.ReleaseComObject(CurExcel);
- CurExcel = null;
- GC.Collect();
- GC.WaitForPendingFinalizers();
- }
- catch (System.Exception ex)
- {
- HttpContext.Current.Response.Write("在释放Excel内存空间时发生了一个错误:" + ex);
- }
- finally
- {
- foreach (System.Diagnostics.Process pro in System.Diagnostics.Process.GetProcessesByName("Excel"))
- //if (pro.StartTime < DateTime.Now)
- pro.Kill();
- }
- System.GC.SuppressFinalize(this);
- }
- }
- }
.NET的ExcelOperate的更多相关文章
- Npoi导入导出Excel操作
之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求. 在winform上面实现excel操作:http://www.cnblogs.com/Cal ...
- C#导出EXCEL的几种方法
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
- 读取本地excel发短信
package com.cmcc.zysoft.sellmanager.controller; import java.io.File; import java.io.FileInputStream; ...
- POI读入excel文件到Java中
package Poi_Test; //导入java自带的包 import java.io.BufferedInputStream; import java.io.File; import java. ...
- C#导出EXCEL的方法
/// using System; using System.Collections.Generic; using System.Text; using System.Data; using Syst ...
- java 读取excel 正常 xls
package com.sun.test; import java.io.BufferedInputStream;import java.io.File;import java.io.FileInpu ...
- java 读取excel文件(只读取xls文件)
package com.sun.test; import java.io.BufferedInputStream;import java.io.File;import java.io.FileInpu ...
- java读取Excel文档插入mysql
/** * 读取excel插入myslq */package com.excel; import java.io.BufferedInputStream;import java.io.File;imp ...
- C# 导出Excel的示例(转)
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.W ...
随机推荐
- The first day to learn Englisht
IF you want to go fast,to alone. IF you want to go far,go with others.
- 哈希(Hash)与加密(Encrypt)相关内容
1.哈希(Hash)与加密(Encrypt)的区别 哈希(Hash)是将目标文本转换成具有相同长度的.不可逆的杂凑字符串(或叫做消息摘要),而加密(Encrypt)是将目标文本转换成具有不同长度的.可 ...
- 在Visual Studio中使用Git命令提示符
VS2015自带了Git插件,但有时候我觉得Git控制台命令更方便些. VS中本身不能把Git Bush作为浮动窗集成进来,但我们可以通过Power Shell来使用Git命令. ---------- ...
- GitHub菜鸟日志1——20160531
好吧,事实上很早就知道有github这个东西了,然而就有一种莫名的力量一直阻止着我向这“未知的领域”涉足(which is called lazy). 然后,前略...总之,默默的就开始了github ...
- Robot_bfs
Description The Robot Moving Institute is using a robot in their local store to transport different ...
- PHP中CURL方法curl_setopt()函数的一些参数
bool curl_setopt (int ch, string option, mixed value)curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置,v ...
- sumoselect插件
由于项目需要,研究了下sumoselect插件,接下来简单介绍下sumoselect. 在百度上搜索“sumoselect.js”,查到的网页基本上都有对sumoselect的基本介绍,如下: 简单介 ...
- Bool 类型变量的使用
定义一个bool类型的变量,默认为FALSE的 private bool BHaveBeenTip=false; private void label5_Click(object sender, Ev ...
- Python 基础之在ubuntu系统下安装双版本python
前言:随着python升级更新,新版本较于老版本功能点也有不同地方,作为一个初学者应该了解旧版本的规则,也要继续学习新版本的知识.为了能更好去学习python,我在ubuntu安装python2和py ...
- Winscp sftp远程linux服务器需要预设密码,怎么解决
需要在root账户下修改/etc/ssh/sshd_config 文件中PermitEmptyPasswords no改成yes