1、在线预览Excel文件

(1) 运行环境

① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox)

② IE工具栏-Internet 选项:将www.ntko.com加入到浏览器的可信站点中,不启用保护模式,并将HTTPS验证取消

③ 如果是开发人员首次使用文档控件,需要将控件手动注册控件,获取控件的版本clisid以及版本信息Version(如果程序已经开发完则可以忽略此步骤)

(2) 创建一个加载控件的JS文件,用户只需修改控件版本号Version,classid,cab包路径,以及添加授权即可。具体可访问http://dev.ntko.com:8000/查看

① JS文件代码如下:(-1表示TRUE,0表示FALSE)

////----在线编辑Excel并保存
document.write('<object id="TANGER_OCX" classid="clsid:A64E3073-2016-4baf-A89D-FFE1FAA10EC0"');
document.write('codebase="NTKO/OfficeControl.cab#version=5,0,3,0" width="100%" height="100%"> ');
document.write('<param name="Toolbars" value="-1"> '); // 工具栏
document.write('<param name="Menubar" value="0"> '); //菜单栏
document.write('<param name="CustomToolBar" value="-1"> ');
document.write('<param name="Titlebar" value="-1"> '); //标题栏
document.write('<param name="Caption" value="华测计量技术有限公司专用">');//标题内容
document.write('<param name="IsUseControlAgent" value="-1"> '); //是否是控制请求数据,其他请他不允许
document.write('<param name="IsNoCopy" value="0"> '); //0不允许复制
document.write('<param name="IsDirectConnect" value="-1"> ');
document.write('<param name="DefaultOpenDocType" value="1"> ');//1表示只能打开word文档
document.write('<param name="FileOpen" value="0"> ');
document.write('<param name="FileNew" value="0"> ');
document.write('<param name="FileSave" value="0"> ');
document.write('<param name="FileSaveAs" value="0"> ');
document.write('<param name="FilePrint" value="0"> ');
document.write('<param name="FilePrintPreview" value="0"> ');
document.write('<param name="ProductCaption" value="Office Anywhere 3.0"> ');
document.write('<param name="ProductKey" value="65F867689D7FF5CD02FBE4AA23764306F715A9E2">');
document.write('<SPAN STYLE="color:red">不能装载NTKO OFFICE文档控件。请在检查浏览器的选项中检查浏览器的安全设置。</SPAN> ');
document.write('</object> ');

① View代码如下:

@{
ViewBag.Title = "预览excel";
} <h2>Index</h2>
<html>
<head>
<title>NTKO Office文档控件在线预览Excel文件(修改、保存回服务器)演示示例</title>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#ffffff" ;>
<p>
<span>针对excel单元格的操作</span>
<button onclick="AddPicToWord()">添加图片</button>
<button onclick="ReplacePicToWord()">替换图片</button>
<button onclick="AddTextToWord()">插入文字</button>
<button onclick="ReplaceTextToWord()">替换指定的文字</button>
<input type="submit" value="保存文档" id="_upload">
</p>
<script src="~/Scripts/ntkoGenObj.js"></script>
</body>
</html>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script language="javascript">
//控件初始化完成后再以流的形式加载文件
$(function () {
inIt();
});
//初始化
function inIt() {
if (TANGER_OCX == null) {
alert("NTKO OFFICE文档控件未能正确装载。请在本页面装载时窗口上方出现的提示条上点击装载ActiveX控件,并在随后出现的安装ActiveX的对话框中选择‘是’。");
return;
}
OpenFile();
}
//以流的形式打开文件
function OpenFile() {
TANGER_OCX.BeginOpenFromURL('@Url.Action("ReturnFileStream", "ExcelView")', true);
}
//在线编辑,保存修改后的文件回服务器
$("#_upload").click(function () {
TANGER_OCX.SaveToURL('@Url.Action("uploadFile", "ExcelView")', "TANGER_OCX", "", "", "", true);
}); //添加图片
function AddPicToWord() {
var localName = "W33";//单元格的名称
TANGER_OCX.Activate(true);//激活excel
var range=TANGER_OCX.ActiveDocument.Application.Worksheets("Cover").Range(localName);
TANGER_OCX.ActiveDocument.Application.Goto(range);//跳转指定单元格 TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/william.jpg")", true, 0, 0, 1, 100, 1);//添加图片
//TANGER_OCX.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "恭喜你找到了我!";//设置内容
localName = "W36";//单元格的名称
range = TANGER_OCX.ActiveDocument.Application.Worksheets("Cover").Range(localName);
TANGER_OCX.ActiveDocument.Application.Goto(range);
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/jimly.jpg")", true, 0, 0, 1, 100, 1); } //找到对应的单元格删除图片,替换图片
function ReplacePicToWord() {
var localName = "W33";
TANGER_OCX.Activate(true);
var range = TANGER_OCX.ActiveDocument.Application.Worksheets("Cover").Range(localName);
TANGER_OCX.ActiveDocument.Application.Goto(range);
var shapes = TANGER_OCX.ActiveDocument.Application.Worksheets("Cover").shapes;
for (var i = 1; i <= shapes.Count; i++) {
//alert(shapes(i).Type + shapes(i).AlternativeText);
if (shapes(i).AlternativeText == "william") {
shapes(i).Delete();
TANGER_OCX.AddPicFromURL("@Url.Content("~/NTKO/jimly.jpg")", true, 0, 0, 1, 100, 1);
}
}
}
//为单元格添加文字信息
function AddTextToWord() {
var localName = "J55";
TANGER_OCX.Activate(true);
var range=TANGER_OCX.ActiveDocument.Application.Worksheets("Cover").Range(localName);
TANGER_OCX.ActiveDocument.Application.Goto(range);
TANGER_OCX.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "恭喜你找到了我!";//设置内容
}
//修改单元格的内容
function ReplaceTextToWord() {
var localName = "J55";
TANGER_OCX.Activate(true);
var range = TANGER_OCX.ActiveDocument.Application.Worksheets("Cover").Range(localName);
TANGER_OCX.ActiveDocument.Application.Goto(range);
TANGER_OCX.ActiveDocument.Application.ActiveCell.FormulaR1C1 = "哈哈,恭喜你you找到了我!";//设置内容
}
</script>

Controller代码如下:

/// <summary>
/// 打开文件
/// </summary>
/// <returns></returns>
public ActionResult ReturnFileStream()
{
var bytes = Properties.Resources.excel;
var fileStream = new MemoryStream(bytes);
return new FileStreamResult(fileStream, "application/xhtml+xml");
} /// <summary>
/// 保存文件
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult uploadFile()
{ var files = Request.Files[];
var path = Server.MapPath($"~/{DateTime.Now.ToLongDateString()}.xls");
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
byte[] bytes = new byte[files.InputStream.Length];
files.InputStream.Read(bytes, , bytes.Length);
fs.Write(bytes, , bytes.Length);
fs.Close();
return View("Index");
}

文档控件NTKO OFFICE 详细使用说明之预览Excel文件(查看、编辑、保存回服务器)的更多相关文章

  1. 文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)

    1.在线预览PDF文件(禁止打印.下载.复制.另存为) (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将ww ...

  2. 文档控件NTKO OFFICE 详细使用说明之预览word编辑保存回服务器

    1.在线预览Word文件 (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将www.ntko.com加入到浏览 ...

  3. NTKO OFFICE文档控件

    目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便. ...

  4. PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)

    1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...

  5. VSTO:C#获取文档控件的值

    基础知识准备: VSTO入门 创建Excel解决方案   string[] inputfileNames = { @"C:\1.xls", @"C:\2.xls" ...

  6. UploadFile控件,提交图片后,页面预览显示刚刚提交的图片

    最近在用asp.net来写一个新闻系统后台,然后由于不用用网上的flash插件来上传图片什么的,我就用asp.net的控件来写,但是控件总归有一些用的不够灵活的地方.这次测试提出,文章在修改的时候,需 ...

  7. C# MVC(File)控件多张图片上传加预览

    刚来公司实习,老板叫我写一个积分商城网站.用的是公司的框架结构搭建的后台,所以后台的图片上传不需要自己写.但是前台的评价图片就需要自己手写了,在网上找了很多代码发现都用不了.问了很多人也都没有实现! ...

  8. js获取file控件的完整路径(上传图片预览)

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  9. 推荐一套.NET文档处理组件Spire.Office

    原文:推荐一套.NET文档处理组件Spire.Office 以前的项目中用到一点Word简单处理的功能(文字替换和转PDF格式),当时使用的是一套COM组件,必须在服务器上安装office环境.最近考 ...

随机推荐

  1. Vue: axios 请求封装及设置默认域名前缀 (for Vue 2.0)

    1. 实现效果 以get方法向http://192.168.32.12:8080/users 发起请求.获取数据并进行处理 this.apiGet('/users', {}) .then((res) ...

  2. jquery相关常用的工具函数

    1.弹出提示框: function prompt(msg){ $("<div>" + msg + "</div>").css({ &qu ...

  3. PHP stream_socket_server

    stream_socket_server - 创建一个Internet或Unix域服务器套接字 描述 资源stream_socket_server(字符串local_socket [摘要和错误号[,串 ...

  4. 【转载】IDEA的这八条配置你一定要改!

    引言 坦白说,我很少写这种操作类型的文章.因为这种文章没啥新意,大家操作步骤肯定是一样的.然而,我答应了我的同事小阳,给她出一篇!毕竟人家打算从Eclipse转IDEA了,于是以示鼓励,写一篇给她!那 ...

  5. BOS工具之BOS应用框架

    大纲:    应用框架概述,bos应用框架总体,bos应用框架详细设计,代码结构以及常用应用,开发常用接口 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象组件及组件实例间交互的 ...

  6. 关于vcruntime140D.dll丢失问题

    电脑磁盘占用率100%,又检测出硬盘磁道坏了,要么装win7,要么换个SSD,无奈重装环境. 遇到这个问题,之前的电脑就遇到过,网上交的下载这个文件装到C盘Windows的SysWOW64,对于实验室 ...

  7. Node.js+Protractor+vscode搭建测试环境(1)

    1.protractor简介 官网地址:http://www.protractortest.org/ Protractor是一个end-to-end的测试框架,从网络上得到的答案是Protractor ...

  8. 数组(day07)

    数组名称不可以代表存储区 数组名称可以代表数组里第一个存储区的地址 可以对数组名称进行sizeof计算,结果是 数组里所有存储区的总大小 C99规范里可以使用变长数组 声明变长数组的时候可以用变量表示 ...

  9. 09.正则表达式re-2.complie函数

    compile 函数用于编译正则表达式,生成一个 Pattern 对象,它的一般使用形式如下: import re # 将正则表达式编译成 Pattern 对象 pattern = re.compil ...

  10. jquery 绑定回车(Enter )事件

    全局: $(function(){ document.onkeydown = function(e){ var ev = document.all ? window.event : e; if(ev. ...