c#操作Excel模板,替换命名单元格或关键字形成报表
2017-04-18 11:28
363 查看
c#操作Excel模板,替换命名单元格或关键字形成报表
一 建立Excel 模板文件 template.xls
1.1 插入命名单元格的方法:
左上角名称框,显示当前单元格的行列号C2,加入命名后会显示其命名name
方法一:
(1) 点击 单元格“姓名”之后的单元格
(2) 菜单 插入--名称--定义
(3) 在框中输入 name
确保底部的引用位置为 =Users!$C$2
按“添加”、“确定”按钮 即可
方法二:
(1) 点击 单元格“姓名”之后的单元格
(2) 在左上角名称框中,输入名称即可
1.2 制作模板如下:
(1) 在1行1列,写入序号,在2行1列,插入名称 order_num
(2) 在1行2列,写入“报告日期”,在1行3列,插入名称 _报告日期
(3) 在2行2列,写入"姓名",在2行3列,插入名称 name
(4) 在3行2列,写入"年龄",在3行3列,插入名称 age
(5) 在3行2列,写入"结论",在3行3列,插入名称 _结论
二 建立一个,WindowForm格式的解决方案WindowsFormsApplication10
三 添加对Excel的引用
1 右击工程的“应用”文件夹--“添加引用”--在“COM”选项页,
选择“Microsoft Excel 11.0 Object Library”,添加到本工程中,针对office 2003
并自动引入“Microsoft Office 11.0 Object Library”
2 在实现的文件中,加入引用语句:using Excel=Microsoft.Office.Interop.Excel;
按需要,是否加入引用语句:using Microsoft.Office.Core;
3 注意:如果工程中,曾经加入过Excel,office,VBIDE相同的引用,则再加入后,
需要从该引用的“属性”中,将“潜入互操作类型”从True 改变为 False,否则无法编译
四 建立一个操作EXCEL的类ExcelTemplate,并在实际工程中,创建类对象即可。
特别注意:为了程序自动处理方便起见,命名单元格的规则如下:
1.1 开头处的命名单元格,以1个下划线开始,比如,_报告日期
1.2 中间多行组循环的命名单元格,不加下划线,且与数据集的字段名一致为好
1.3 结尾处的命名单元格,以2个下划线开头,比如,__合计
五 结果如下:
六 完整代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//1 右击工程的“应用”文件夹--“添加引用”--在“COM”选项页,
// 选择“Microsoft Excel 11.0 Object Library”,添加到本工程中,针对office 2003
// 并自动引入“Microsoft Office 11.0 Object Library”
//2 在实现的文件中,加入引用语句:using Excel=Microsoft.Office.Interop.Excel;
// 按需要,是否加入引用语句:using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
namespace WindowsFormsApplication10
{
//一 主界面文件
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{//这里演示打开模板文件,替换后保存成实际数据的文件
//1 定位Excel模板文件template.xls
string str;
str = Application.StartupPath;//工作路径
// str = Application.ExecutablePath;
// str = Environment.CurrentDirectory;
// str = System.IO.Directory.GetCurrentDirectory();
// str=AppDomain.CurrentDomain.BaseDirectory;
//d:\WindowsFormsApplication10\WindowsFormsApplication10\bin\Debug\
//d:\WindowsFormsApplication10\WindowsFormsApplication10\template.xls
int pos = -1;
pos = str.IndexOf("\\bin\\Debug");
string strPath = str;
if (pos > 0) strPath = str.Substring(0, pos);
else
{
pos = str.IndexOf("\\bin\\Release");
if (pos > 0) strPath = str.Substring(0, pos);
}
一 建立Excel 模板文件 template.xls
1.1 插入命名单元格的方法:
左上角名称框,显示当前单元格的行列号C2,加入命名后会显示其命名name
方法一:
(1) 点击 单元格“姓名”之后的单元格
(2) 菜单 插入--名称--定义
(3) 在框中输入 name
确保底部的引用位置为 =Users!$C$2
按“添加”、“确定”按钮 即可
方法二:
(1) 点击 单元格“姓名”之后的单元格
(2) 在左上角名称框中,输入名称即可
1.2 制作模板如下:
(1) 在1行1列,写入序号,在2行1列,插入名称 order_num
(2) 在1行2列,写入“报告日期”,在1行3列,插入名称 _报告日期
(3) 在2行2列,写入"姓名",在2行3列,插入名称 name
(4) 在3行2列,写入"年龄",在3行3列,插入名称 age
(5) 在3行2列,写入"结论",在3行3列,插入名称 _结论
二 建立一个,WindowForm格式的解决方案WindowsFormsApplication10
三 添加对Excel的引用
1 右击工程的“应用”文件夹--“添加引用”--在“COM”选项页,
选择“Microsoft Excel 11.0 Object Library”,添加到本工程中,针对office 2003
并自动引入“Microsoft Office 11.0 Object Library”
2 在实现的文件中,加入引用语句:using Excel=Microsoft.Office.Interop.Excel;
按需要,是否加入引用语句:using Microsoft.Office.Core;
3 注意:如果工程中,曾经加入过Excel,office,VBIDE相同的引用,则再加入后,
需要从该引用的“属性”中,将“潜入互操作类型”从True 改变为 False,否则无法编译
四 建立一个操作EXCEL的类ExcelTemplate,并在实际工程中,创建类对象即可。
特别注意:为了程序自动处理方便起见,命名单元格的规则如下:
1.1 开头处的命名单元格,以1个下划线开始,比如,_报告日期
1.2 中间多行组循环的命名单元格,不加下划线,且与数据集的字段名一致为好
1.3 结尾处的命名单元格,以2个下划线开头,比如,__合计
五 结果如下:
六 完整代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//1 右击工程的“应用”文件夹--“添加引用”--在“COM”选项页,
// 选择“Microsoft Excel 11.0 Object Library”,添加到本工程中,针对office 2003
// 并自动引入“Microsoft Office 11.0 Object Library”
//2 在实现的文件中,加入引用语句:using Excel=Microsoft.Office.Interop.Excel;
// 按需要,是否加入引用语句:using Microsoft.Office.Core;
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Core;
namespace WindowsFormsApplication10
{
//一 主界面文件
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{//这里演示打开模板文件,替换后保存成实际数据的文件
//1 定位Excel模板文件template.xls
string str;
str = Application.StartupPath;//工作路径
// str = Application.ExecutablePath;
// str = Environment.CurrentDirectory;
// str = System.IO.Directory.GetCurrentDirectory();
// str=AppDomain.CurrentDomain.BaseDirectory;
//d:\WindowsFormsApplication10\WindowsFormsApplication10\bin\Debug\
//d:\WindowsFormsApplication10\WindowsFormsApplication10\template.xls
int pos = -1;
pos = str.IndexOf("\\bin\\Debug");
string strPath = str;
if (pos > 0) strPath = str.Substring(0, pos);
else
{
pos = str.IndexOf("\\bin\\Release");
if (pos > 0) strPath = str.Substring(0, pos);
}
相关文章推荐
- 使用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#和Excel进行报表开发(七)-设置单元格的显示格式
- 使用C#和Excel进行报表开发(四)-复制单元格
- C#操作Excel开发报表系列整理
- 使用C#和Excel进行报表开发(二)-操作统计图(Chart)
- 使用C#和Excel进行报表开发(二)-操作统计图(Chart)