这是很久以前做的一个生成Excel,现在分享下。
这个程序是要引用Microsoft.Office.Interop.Excel.dll 以下是下载的地址http://files.cnblogs.com/fan0136/Microsoft.Office.Interop.Excel.rar
这个程序主要是引用Microsoft.Office.Interop.Excel来导出程序。如果是要弄成下载形式的Excel代码还需要做下载处理,当时做的代码不知道弄到哪里去了,这个只是个基本的代码。缺点是,控制样式什么的都比较麻烦,最好还是扩展下以下的基类代码。控制文字样式,边框什么的都需要写些方法。可惜当时写的比较多的版本已经找不到了。
还有一种用模版生成的Excel的方式,就是根据模版设计的样式什么的,生成Excel。这种就比较好控制样式,只要在模版上设置好样式,基本代码里不怎么去写样式。如果改天心血来潮时再总结下另一种方式的吧。
using System;
using System.Data;
using FedEx_WebForm.DAO;
namespace Excel
{
public class ExcelBase
{
//excel APP
private Microsoft.Office.Interop.Excel.Application app = null;
//excel book
private Microsoft.Office.Interop.Excel.Workbook workbook = null;
//excel worksheet
private Microsoft.Office.Interop.Excel.Worksheet worksheet = null;
//workSheet range
private Microsoft.Office.Interop.Excel.Range workSheet_range = null;
/// <summary>
/// 构造函数
/// </summary>
public ExcelBase()
{
createDoc();
}
/// <summary>
/// 创建excel
/// </summary>
public void createDoc()
{
try
{
app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
workbook = app.Workbooks.Add(1);
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];
}
catch (Exception e)
{
Console.Write("Error");
}
finally
{
}
}
/// <summary>
/// 单个单元格写数据
/// </summary>
/// <param name="text">文字</param>
/// <param name="row">行</param>
/// <param name="col">列</param>
public void WriteData(string text ,int row, int col)
{
worksheet.Cells[row, col] = text;
}
/// <summary>
/// 合并单元格写数据
/// </summary>
/// <param name="text">文字</param>
/// <param name="row">行</param>
/// <param name="col">列</param>
/// <param name="MergeRow">合并 行</param>
/// <param name="MergeCol">合并 列</param>
public void WriteData(string text, int row, int col, int MergeRow, int MergeCol)
{
worksheet.Cells[row, col] = text;
worksheet.get_Range(worksheet.Cells[1, 3], worksheet.Cells[1, 5]).Merge(Type.Missing);
}
}
}
测试代码:
protected void CreateExcelTest()
{
try
{
ExcelBase excel = new ExcelBase();
excel.WriteData("10K",1,1);
excel.WriteData("20K", 2, 2, 2, 3);
}
catch (Exception e)
{
Console.Write("Error:" + e.ToString() );
}
finally
{
}
}
大功告成