Take a look at GW

【C#】C#对Excel表的操作

目录结构:

contents structure [+]

1.Microsoft.Office.Interop.Excel.Application

这.net 库自带的处理Excel的API,不过想要使用该类,电脑上必须已经安装上了Microsoft Office。

        static void Main(string[] args)
        {
            //创建Application的对象
            Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
            if (excel == null)
            {
                MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel");
                return;
            }

            //获得 工作簿集合
            Microsoft.Office.Interop.Excel.Workbooks workbooks = excel.Workbooks;
            //向工作簿集合中,添加一个空白工作簿,并且获得添加工作簿的引用
            Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);

            //获得 工作表
            Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];

            //得到Range对象
            Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[1, 1];
            range.Value2 = "hello";

            //保存
            workbook.SaveAs(@"C:\Users\Administrator\Desktop\a.xlsx");
        }

创建工作簿实例(Workbook)时,除了使用Add方法,还可以使用Open方法,从本地Excel文件创建Workbook实例,例如:

Workbook workbook=workbooks.Open(@"excel文件", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

使用系统自带的API操作Excel文件,过于繁琐,下面介绍使用Aspose.cell插件。

2.Aspose.cell插件

Asponse.cell是一个第三方插件,它解决了.net自带API操作Excel的繁琐。创建Aspose.cell.Workbook对象,Aspose.cell插件提供了6中Workbook的构造函数:

public Workbook();//创建默认的Workbook实例
public Workbook(FileFormatType fileFormatType);//以指定的文件格式类型创建Workbook实例,例如Pdf,Xlsx,Html,SVG....
public Workbook(Stream stream);//从指定的流中创建Workbook实例
public Workbook(string file);//从指定的文件中创建Workbook实例
public Workbook(Stream stream, LoadOptions loadOptions);//以指定的加载选项,从流中创建Workbook实例
public Workbook(string file, LoadOptions loadOptions);//以指定的加载选项,从文件中创建Workbook实例

例如:

Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook();//创建工作簿
Aspose.Cells.Worksheet workSheet=workbook.Worksheets[0];//获得工作表


操作单元格

//获得B1单元格
Aspose.Cells.Cell cell = workSheet.Cells[0,0];//除了使用有参属性[int,int]获取单元格,还可以使用有参属性[String]获取,例如Cells["A1"]
//设置单元格值
cell.PutValue("word");
//创建Style对象
Aspose.Cells.Style style = new Aspose.Cells.Style();
style.SetBorder(Aspose.Cells.BorderType.LeftBorder, Aspose.Cells.CellBorderType.Dotted, System.Drawing.Color.Red);//设置边框格式
style.Font.Color = System.Drawing.Color.Green;//设置字体颜色
style.Font.Size = 21;//设置字体大小
style.Font.Underline = Aspose.Cells.FontUnderlineType.Single;//设置下划线
style.BackgroundColor = System.Drawing.Color.White;//设置背景颜色
style.RotationAngle = 90;//设置旋转角度
//设置单元格样式
cell.SetStyle(style);


保存
既可以保存到本地,也可以保存到流中

workbook.Save("地址");
Stream stream= workbook.SaveToStream();

在Web应用中,有时候需要让用户下载文件,那么这时候可以把流设置到响应流中,例如:

FileName += "_"+DateTime.Now.ToString("yyyyMMddHHmmss")+".xls";
HttpResponseBase response = (HttpResponseBase)HttpContext.Response;
response.Buffer = true;
response.Charset = "utf-8";
response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
response.ContentEncoding = System.Text.Encoding.UTF8;
response.ContentType = "application/ms-excel";
response.BinaryWrite(workbook.SaveToStream().ToArray());
response.End();


例如下面是操作Excel的简单案例:

//创建 工作簿 Workbook对象
Aspose.Cells.Workbook workbook = new Aspose.Cells.Workbook(@"读取文件的路径");
//获得工作表
Aspose.Cells.Worksheet workSheet=workbook.Worksheets[0];
//获得0,0单元格
Aspose.Cells.Cell cell = workSheet.Cells[0,0];
//设置单元格值
Console.WriteLine(cell.Value);
cell.PutValue("你好");
//创建Style对象
Aspose.Cells.Style style = new Aspose.Cells.Style();
style.Font.Color = System.Drawing.Color.Green;//设置字体颜色
//设置单元格样式
cell.SetStyle(style);
workbook.Save(@"保存文件的路径");

 

posted @ 2018-09-09 16:46  HDWK  阅读(1038)  评论(0编辑  收藏  举报