C#操作Excel
来源:互联网 发布:淘宝产品上架教程视频 编辑:程序博客网 时间:2024/05/01 01:17
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Office.Core;
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
namespace ExcelControl
{
public class ToExcel
{
private Application _app;
public Application app
{
get { return _app; }
set { _app = value; }
}
private Workbooks _wbs;
public Workbooks wbs
{
get { return _wbs; }
set { _wbs = value; }
}
private Workbook _wb;
public Workbook wb
{
get { return _wb; }
set { _wb = value; }
}
private Worksheet _ws;
public Worksheet ws
{
get { return _ws; }
set { _ws = value; }
}
public ToExcel() //构造函数
{
Create();
}
public void Create()//创建一个Microsoft.Office.Interop.Excel对象
{
_app = new Application();
_wbs = _app.Workbooks;
_wb = _wbs.Add(true);
_ws = _wb.Worksheets[1] as Worksheet;
}
public bool SaveAs(object FileName)//文档另存为
{
try
{
_wb.SaveAs(FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);
return true;
}
catch (Exception ex)
{
return false;
}
}
public void Close()//关闭一个Microsoft.Office.Interop.Excel对象,销毁对象
{
_app.DisplayAlerts = false;
_app.AlertBeforeOverwriting = false;
//清空excelSheet対象
System.Runtime.InteropServices.Marshal.ReleaseComObject(_ws);
ws = null;
//清空excelBook対象
System.Runtime.InteropServices.Marshal.ReleaseComObject(_wb);
_wb = null;
//清空excelApp対象
System.Runtime.InteropServices.Marshal.ReleaseComObject(_app);
_app = null;
_wbs.Close();
//清空excelBooks対象
System.Runtime.InteropServices.Marshal.ReleaseComObject(_wbs);
_wbs = null;
GC.Collect();
}
#region 数据表操作
public Microsoft.Office.Interop.Excel.Worksheet GetSheet(string SheetName)//获取一个工作表
{
Microsoft.Office.Interop.Excel.Worksheet s = (Microsoft.Office.Interop.Excel.Worksheet)_wb.Worksheets[SheetName];
return s;
}
public void InsertTable(System.Data.DataTable dt,
string ws, int startX, int startY)
//将内存中数据表格插入到Microsoft.Office.Interop.Excel指定工作表的指定位置 为在使用模板时控制格式时使用一
{
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
for (int j = 0; j <= dt.Columns.Count - 1; j++)
{
GetSheet(ws).Cells[startX + i, j + startY] = dt.Rows[i][j].ToString();
}
}
}
public void InsertTable(System.Data.DataTable dt, Microsoft.Office.Interop.Excel.Worksheet ws, int startX, int startY)
//将内存中数据表格插入到Microsoft.Office.Interop.Excel指定工作表的指定位置二
{
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
for (int j = 0; j <= dt.Columns.Count - 1; j++)
{
ws.Cells[startX + i, j + startY] = dt.Rows[i][j];
}
}
}
#endregion
#region 设置单元格的值
public void SetCellValue(int x, int y, object value)//X行Y列 value值
{
_ws.Cells[x, y] = value;
}
#endregion
#region 设置单元格格式
public void UniteCells(int x1, int y1, int x2, int y2) //合并单元格
{
_ws.get_Range(_ws.Cells[x1, y1], _ws.Cells[x2, y2]).Merge(Type.Missing);
}
public void SetCellAlignment(int Startx, int Starty, //单元格对齐方式1
int Endx, int Endy, Constants HorizontalAlignment)
{
_ws.get_Range(_ws.Cells[Startx, Starty], _ws.Cells[Endx, Endy]).HorizontalAlignment = HorizontalAlignment;
}
public void SetCellAlignment(int x, int y, //单元格对齐方式2
Constants HorizontalAlignment)
{
SetCellAlignment(x, y, x, y, HorizontalAlignment);
}
public void SetCellFont(int Startx, int Starty, //字体1
int Endx, int Endy, int fontSize, bool isBold)
{
_ws.get_Range(_ws.Cells[Startx, Starty], _ws.Cells[Endx, Endy]).Font.Size = fontSize;
_ws.get_Range(_ws.Cells[Startx, Starty], _ws.Cells[Endx, Endy]).Font.Bold = isBold;
}
public void SetCellFont(int x, int y, int fontSize, bool isBold) //字体2
{
SetCellFont(x, y, x, y, fontSize, isBold);
}
public void SetCellBorder(int Startx, int Starty, int Endx, int Endy) //边框
{
Range excelRange =
_ws.get_Range(_ws.Cells[Startx, Starty], _ws.Cells[Endx, Endy]);
excelRange.Borders.LineStyle = 1;
}
public void SetCellSize(int Startx, int Starty, int Endx, int Endy, int height) //行高、列宽
{
Range excelRange =
_ws.get_Range(_ws.Cells[Startx, Starty], _ws.Cells[Endx, Endy]);
excelRange.EntireColumn.AutoFit(); //自动调整列宽
excelRange.RowHeight = height;
}
#endregion
}
}
- c#如何操作excel??
- C#操作Excel!
- C# 操作 Excel
- C#访问Excel操作
- C# 操作 Excel
- C# 操作 Excel
- C#操作Excel
- C#操作Excel
- C# 操作 Excel
- C#操作EXCEL
- C#对Excel操作
- c#操作EXcel
- C# 操作 Excel
- C#操作Excel文档
- C# 操作Excel
- C#操作MS Excel
- C#操作Excel
- .Net C# 操作Excel
- 打开串口号大于10失败
- 指针传递
- effective c++ 条款27: 如果不想使用隐式生成的函数就要显式地禁止它
- 字符串与十六进制之间的互相转化
- shell中逐行处理文件的一些方法
- C#操作Excel
- JPEG文件格式解析
- java技术
- Linux技客赢取10,000美金的机会(2010/9/30截止)
- english--100
- C#操作Word
- url重写功能
- NET发送邮件
- September 21 to 23 went to New York