windows窗体(winform)中嵌入显示Excel工作表。

 
环境:c#2005,Excel2003.
1 实现后的效果如下图:
(截图)
2 实现代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Owc11;

namespace CityToProvince.GUILayer
{
    public partial class frmExcel : Form
    {
        public frmExcel()
        {
            InitializeComponent();
        }

        private void buttonOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog myOpenFileDialog = new OpenFileDialog();
            myOpenFileDialog.Filter = "Excel文件(*.xls)|*.xls|xml格式表格(*.xml)|*.xml";
            myOpenFileDialog.FilterIndex = 2;
            myOpenFileDialog.Title = "选择xml文件";
            myOpenFileDialog.InitialDirectory = "c:\\";
            myOpenFileDialog.RestoreDirectory = true;
            DialogResult dr = myOpenFileDialog.ShowDialog();
            if (dr == DialogResult.OK)
            {
                try
                {
                    this.axSpreadsheetExcel.XMLURL = myOpenFileDialog.FileName;
                }
                catch
                {
                    MessageBox.Show("错误");
                }
            }
        }

        private void buttonConvert_Click(object sender, EventArgs e)
        {//xls->xml and open
            OpenFileDialog myOpenFileDialog = new OpenFileDialog();
            myOpenFileDialog.Filter = "Excel文件(*.xls)|*.xls";
            myOpenFileDialog.FilterIndex = 1;
            myOpenFileDialog.Title = "选择Excel文件";
            myOpenFileDialog.InitialDirectory = "c:\\";
            myOpenFileDialog.RestoreDirectory = true;
            DialogResult dr = myOpenFileDialog.ShowDialog();
            if (dr == DialogResult.OK)
            {
                try
                {
                    ExcelProcess.ExcelProcess myExcel = new ExcelProcess.ExcelProcess();
                    myExcel.OpenFileName = myOpenFileDialog.FileName;
                    string saveXmlName = myOpenFileDialog.FileName.ToString().Replace("xls", "xml");
                    if (System.IO.File.Exists(saveXmlName))
                    {
                        System.IO.File.Delete(saveXmlName);
                    }
                    myExcel.SaveFileName = saveXmlName;
                    myExcel.OpenExcelFile();
                    myExcel.SaveExcelAsXML();
                    myExcel.CloseExcelApplication();

                }
                catch
                {
                    MessageBox.Show("转换错误");
                }
            }

        }

        private void buttonClose_Click(object sender, EventArgs e)
        {
            //this.axSpreadsheetExcel.XMLURL = null;
            this.Close();
        }

        private void buttonConvertOpen_Click(object sender, EventArgs e)
        {
            //xls->xml and open
            OpenFileDialog myOpenFileDialog = new OpenFileDialog();
            myOpenFileDialog.Filter = "Excel文件(*.xls)|*.xls";
            myOpenFileDialog.FilterIndex = 1;
            myOpenFileDialog.Title = "选择Excel文件";
            myOpenFileDialog.InitialDirectory = "c:\\";
            myOpenFileDialog.RestoreDirectory = true;
            DialogResult dr = myOpenFileDialog.ShowDialog();
            if (dr == DialogResult.OK)
            {
                try
                {
                    ExcelProcess.ExcelProcess myExcel = new ExcelProcess.ExcelProcess();
                    myExcel.OpenFileName = myOpenFileDialog.FileName;
                    string saveXmlName = myOpenFileDialog.FileName.ToString().Replace("xls", "xml");
                    if (System.IO.File.Exists(saveXmlName))
                    {
                        System.IO.File.Delete(saveXmlName);
                    }
                    myExcel.SaveFileName = saveXmlName;
                    myExcel.OpenExcelFile();
                    myExcel.SaveExcelAsXML();
                    myExcel.CloseExcelApplication();
                    this.axSpreadsheetExcel.XMLURL = saveXmlName;
                }
                catch
                {
                    MessageBox.Show("转换错误");
                }
            }

        }

        private void buttonSave_Click(object sender, EventArgs e)
        {
            SaveFileDialog mySaveFileDialog = new SaveFileDialog();
            mySaveFileDialog.Title = "导出Excel文件的名称";
            mySaveFileDialog.Filter = "Excel文件|*.xls";
            string exportExcelFile;
            mySaveFileDialog.InitialDirectory = SysCommon.ShareData.ExportExcelPath;
            DialogResult mydr = mySaveFileDialog.ShowDialog();
            if (mydr == DialogResult.OK)
            {
                exportExcelFile = mySaveFileDialog.FileName;
                this.axSpreadsheetExcel.Export(exportExcelFile, SheetExportActionEnum.ssExportActionNone,
                    SheetExportFormat.ssExportAsAppropriate);
            }
        }
    }
}
其中ExcelProcess是我写的一个操作excel的类。

转载: http://emanlee.cnblogs.com/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VBA常用技巧 目录 第1章 Range(单元格)对象 3 技巧1 单元格的引用方法 3 1-1 使用Range属性 3 1-2 使用Cells属性 4 1-3 使用快捷记号 4 1-4 使用Offset属性 5 1-5 使用Resize属性 6 1-6 使用Union方法 7 1-7 使用UsedRange属性 7 1-8 使用CurrentRegion属性 8 技巧2 选定单元格区域的方法 8 2-1 使用Select方法 8 2-2 使用Activate方法 9 2-3 使用Goto方法 10 技巧3 获得指定行、列的最后一个非空单元格 10 技巧4 定位单元格 13 技巧5 查找单元格 14 5-1 使用Find方法 14 5-2 使用Like运算符 18 技巧6 替换单元格内字符串 19 技巧7 复制单元格区域 20 技巧8 仅复制数值到另一区域 23 8-1 使用选择性粘贴 23 8-2 直接赋值的方法 24 技巧9 单元格自动进入编辑状态 25 技巧10 禁用单元格拖放功能 25 技巧11 单元格格式操作 26 11-1 单元格字体格式设置 26 11-2 设置单元格内部格式 28 11-3 为单元格区域添加边框 29 11-4 灵活设置单元格的行高列宽 31 技巧12 单元格的数据有效性 32 12-1 在单元格建立数据有效性 32 12-2 判断单元格是否存在数据有效性 33 12-3 动态的数据有效性 34 12-4 自动展开数据有效性下拉列 36 技巧13 单元格的公式 37 13-1 在单元格写入公式 37 13-2 检查单元格是否含有公式 38 13-3 判断单元格公式是否存在错误 39 13-4 取得单元格公式的引用单元格 40 13-5 将单元格的公式转换为数值 41 技巧14 单元格的批注 42 14-1 判断单元格是否存在批注 42 14-2 为单元格添加批注 43 14-3 删除单元格的批注 44 技巧15 合并单元格操作 45 15-1 判断单元格区域是否存在合并单元格 45 15-2 合并单元格时连接每个单元格的文本 46 15-3 合并内容相同的连续单元格 47 15-4 取消合并单元格时在每个单元格保留内容 49 技巧16 高亮显示单元格区域 50 技巧17 双击被保护单元格时不显示提示消息框 51 技巧18 重新计算工作指定区域 53 技巧19 录入数据后单元格自动保护 53 技巧20 工作事件Target参数的使用方法 55 20-1 使用单元格的Address 属性 55 20-2 使用Column属性和Row属性 56 20-3 使用Intersect方法 56

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值