本文主要介绍SpreadJS 9 新功能:Excel导入/导出。在老版本中, SpreadJS的Excel导入/导出功能要求安装在网络服务器上。而现在,其作为一个组件,Excel I/O允许您免费再分发,并提供公共接口方便您调用。
老版本的导入导出服务以开源的Sample提供
原有的Excel导入/导出服务现在作为一个samples直接开源给用户使用
安装SpreadJS ExcelIO Server Component.exe
1.SpreadJS ExcelIO Server Component.exe
2.激活License
3.安装完成后的目录
示例程序:
第1步:程序集被安装到"%ProgramData%/GrapeCity/Spread Studio 9/SpreadJS/ExcelIO"
第2步:在Visual Studio中的空ASP.NET Web应用程序
第3步:为Excel I/O创建授权文件
1. 在记事本中编辑如下文字:
"GrapeCity.Spread.Sheets.ExcelIO.Spread, GrapeCity.Spread.Sheets.ExcelIO, Version=9.40.20153.0, Culture=neutral, PublicKeyToken=3ef656c0a61aba3a"。
2. 保存该文件。
3. 重命名文件为 "licenses.licx"。
拷贝该文件到属性文件夹并将其包含为嵌入资源。
第4步:添加Web窗体ASPX项目到项目
添加两个按钮控件,一个FileUpdate控制,二HiddenField组件和一个DIV DOM元素
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestExcelIO_WebForm.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<!--SpreadJS Widgets JavaScript-->
<link href="css/gcspread.sheets.excel2013white.9.40.20153.0.css" rel="stylesheet" type="text/css" />
<script src="scripts/gcspread.sheets.all.9.40.20153.0.min.js" type="text/javascript"></script>
<script>
function onLoad() {
var spread = new GcSpread.Sheets.Spread(document.getElementById("ss"));
var hiddenFile = document.getElementById("HiddenField1");
if (hiddenFile && hiddenFile.value !== "") {
spread.fromJSON(JSON.parse(hiddenFile.value));
}
}
function exportExcel() {
var spread = GcSpread.Sheets.findControl(document.getElementById("ss"));
var hiddenFile2 = document.getElementById("HiddenField2");
hiddenFile2.value = JSON.stringify(spread.toJSON());
}
</script>
</head>
<body onload="onLoad()">
<form id="form1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" Height="24px" Width="223px" />
<asp:Button ID="ImportBtn" runat="server" Text="Import Excel" OnClick="ImportBtn_Click" />
<asp:Button ID="ExportBtn" runat="server" Text="Export Excel" OnClick="ExportBtn_Click" OnClientClick="exportExcel()"/>
<div id="ss" style="width:100%;height:500px">
</div>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
</form>
</body>
</html>
第5步:添加服务器端代码的服务器按钮单击事件处理方法
protected void ImportBtn_Click(object sender, EventArgs e)
{
if (this.FileUpload1.HasFile)
{
Importer excelImporter = new Importer();
this.HiddenField1.Value = excelImporter.ImportExcel(this.FileUpload1.FileContent);
}
}
protected void ExportBtn_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.HiddenField2.Value))
{
Exporter excelExporter = new Exporter(this.HiddenField2.Value);
excelExporter.SaveExcel(Response.OutputStream);
Response.AddHeader("content-disposition", "attachment; filename= test.xlsx");
Response.End();
}
}
运行截图:
示例下载:
这就是你想要的SpreadJS,快来官网了解并下载它吧!