//批量粘贴
var columnData = [{
excelIndex: 0,
field: 'cityType',
header: '城市类型'
},
{
excelIndex: 1,
field: 'cost',
header: '费用标准'
},
{
excelIndex: 2,
field: 'startDate',
header: '有效起始日期'
}, {
excelIndex: 3,
field: 'endDate',
header: '有效结束日期'
}
];
var ImportPasteData = {
columnData: columnData,
saveUrl: '${importPasteSave}',
downloadTemplateUrl: "<%=request.getContextPath()%>/userfiles/template/SalesCostStandardTemplate.xlsx"
};
function importPasteFun() {
mini.open({
url: '${CommonImportPaste}',
title: '批量导入',
width: 800,
height: 600,
onload: function() {
var iframe = this.getIFrameEl();
var data = ImportPasteData;
iframe.contentWindow.SetData(data);
},
ondestroy: function(action) {
grid.reload();
}
});
}
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String contextPath = request.getContextPath();
String path = request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>excel导入</title>
<script src="<%=request.getContextPath()%>/htwyRes/miniui/scripts/boot.js" type="text/javascript"></script>
<link href="<%=request.getContextPath()%>/htwyRes/miniui/scripts/miniui/themes/blue2003/skin.css" rel="stylesheet"
type="text/css" />
<script src="<%=request.getContextPath()%>/htwyRes/js/excelCopy.js" type="text/javascript"></script>
<!-- <link href="<%=request.getContextPath() %>/htwyRes/haitian/css/main.css" rel="stylesheet" type="text/css"/>-->
<script src="<%=request.getContextPath()%>/gaojinsoft/y2019/marketManage/commonJs.js" type="text/javascript"></script>
</head>
<!--<body style="background-color: #DEF0FE; height: auto;">-->
<body style="height: auto;">
<div>
<p style="padding-top: 5px;">
<a id="downloadTemplateBtn" class="mini-button" iconCls="icon-download" href="">下载模板</a>
<a id="importPastePasteBtn" class="mini-button " iconCls="icon-download" onclick="importPastePasteFun(this)">粘贴</a>
<a id="importPasteSubmitBtn" class="mini-button " iconCls="icon-upload" onclick="importPasteSubmitFun()">导入</a>
<span style="color: red;">注:请在excel复制数据到此处粘贴进行导入</span>
</p>
</div>
<!--<div class="mini-fit" style="height: 600px;">-->
<div id="importPasteDataGrid" class="mini-datagrid" style="width:100%;height:500px;" allowSortColumn="false"
allowResize="true" showPager="false">
<div property="columns">
<div type="indexcolumn" width="30" headerAlign="center" align="center">序号</div>
<!-- <div field="startDate" headerAlign="center" allowSort="true" align="center">活动开始时间(年月)
</div>
<div field="systemCode" headerAlign="center" allowSort="true" align="center">门店编码
</div>
<div field="setExpense" headerAlign="center" allowSort="true" align="center">陈列费
</div>
<div field="manExpense" headerAlign="center" allowSort="true" align="center">人员费
</div>
<div field="expenseSources" headerAlign="center" allowSort="true" align="center">费用来源
</div> -->
</div>
</div>
<!--</div>-->
</body>
</html>
<script type="text/javascript">
// uploadStorePaste
var columnData = [];
var saveUrl = '';
var downloadTemplateUrl = "";
// var columnData =[];
function SetData(data) {
commonConsole(data, "data");
columnData = data.columnData;
saveUrl = data.saveUrl;
downloadTemplateUrl = data.downloadTemplateUrl;
$("#downloadTemplateBtn").attr("href", downloadTemplateUrl);
createGrid(columnData);
}
mini.parse();
var grid = mini.get("importPasteDataGrid");
// var columnData = [{
// excelIndex: 0,
// field: 'cityType',
// header: '城市类型'
// },
// {
// excelIndex: 1,
// field: 'cost',
// header: '费用标准'
// },
// {
// excelIndex: 2,
// field: 'startDate',
// header: '有效起始日期'
// },{
// excelIndex: 3,
// field: 'endDate',
// header: '有效结束日期'
// }];
function createGrid(columnData) {
var columns = [{
type: "indexcolumn"
}];
for (var i = 0; i < columnData.length; i++) {
var data = columnData[i];
var temp = {};
temp.field = data.field;
temp.header = data.header;
temp.headerAlign = "center";
columns.push(temp);
}
grid.set({
columns: columns
});
// grid.load();
}
//批量粘贴提交
function importPasteSubmitFun() {
var importPasteDataGrid = mini.get("importPasteDataGrid");
var addedRows = importPasteDataGrid.getChanges('added', false); //获得新增行
var modifiedRows = importPasteDataGrid.getChanges('modified', false); //获得修改行
//ajax提交到后台
var msgid = mini.loading("操作中,请稍后......");
$.ajax({
type: 'POST',
url: saveUrl,
dataType: 'json',
data: {
'addedRows': encodeURIComponent(mini.encode(addedRows)),
'modifiedRows': encodeURIComponent(mini
.encode(modifiedRows))
},
success: function(result) {
if (result.flag) {
mini.alert("保存成功!", "提示");
} else {
mini.alert("保存失败!" + result.msg, "提示");
}
mini.hideMessageBox(msgid);
},
error: function(jqXHR, textStatus, errorThrown) {
mini.hideMessageBox(msgid);
mini.alert("保存失败!", "提示");
}
});
}
//批量复制(IE)
function importPastePasteFun(obj) {
var eData = getExcelData();
if (!(excelData instanceof Array)) {
alert("请在表格空白处使用Ctrl+v进行粘贴!");
} else {
pasttoGrid(eData)
}
}
//复制到grid(chrome)
function pasttoGrid(content) {
// if(compatibleBrowser()==true){
// // mini.alert("compatibleBrowser()==true", "提示");
// var focusedElement = document.activeElement;
// if(!(focusedElement.id=='datagrid1' || focusedElement.tagName=='BODY')){
// return;
// }
// }
console.info("content length == " + content.length)
var rowLen = content.length;
var importPasteDataGrid = mini.get("importPasteDataGrid");
//------------------
var newRowArray = [];
for (var i = (rowLen - 1); i >= 0; i--) {
var str = content[i];
var strArray = str.split("\t");
var newRow = {};
//----------
// columnData
for (var j = 0; j < columnData.length; j++) {
newRow[columnData[j].field] = strArray[j];
}
// newRow.startDate = strArray[0];
// newRow.systemCode = strArray[1];
// newRow.setExpense = strArray[2];
// newRow.manExpense = strArray[3];
// newRow.expenseSources = strArray[4];
//-----------
newRowArray.push(newRow);
}
// //------------------数据检验
// for (var i = 0 ; i<newRowArray.length; i++) {
// if(!newRowArray[i].userName){
// mini.alert("帐号不能为空!", "提示");
// return;
// }
//
// if(!newRowArray[i].areaId){
// mini.alert("权限架构ID为空!", "提示");
// return;
// }
//
// //console.info(typeof(newRowArray[i].areaId) )
//
// //if(!typeof(newRowArray[i].areaId)=="number"){
// // mini.alert("权限架构ID要求为数字!", "提示");
// // return;
// //}
//
//
// }
//------------------
for (var i = 0; i < newRowArray.length; i++) {
//-----------
importPasteDataGrid.addRow(newRowArray[i], 0);
}
//------------------
importPasteDataGrid.commitEdit(); //提交所有行编辑。
}
</script>
@Override
public void importPasteSave(SalesCostStandardAction action) throws Exception {
// User user = new UserUtil(ServletActionContext.getRequest())
// .getCurrentUser();
// Timestamp nowtime = new Timestamp(System.currentTimeMillis());
String message = "";
Map<String, Object> result = new HashMap<String, Object>();
String jsonResult = "";
// -----------------
String addRows = URLDecoder.decode(action.getAddedRows(), "utf-8");// 新增的
// String modefinedRows = URLDecoder.decode(action.get, "utf-8");// 修改的
JSONDeserializer<List<Map>> list = new JSONDeserializer<List<Map>>();
List<Map> addMapList = list.deserialize(addRows);
List<Map> dataList = addMapList;
User user = new UserUtil(ServletActionContext.getRequest()).getCurrentUser();
Timestamp nowTime = new Timestamp(new Date().getTime());
//
String userId = user.getUserId();
String userName = user.getName();
if (dataList != null) {
if (dataList.size() > 501) {
String msg = "单次导入不能超过500条数据";
result.put("flag", false);
result.put("msg", msg);
jsonResult = Json.Encode(result);
action.setAjaxOutData(new ByteArrayInputStream(jsonResult.getBytes("utf-8")));
return;
}
} else {
String msg = "无导入数据";
result.put("flag", false);
result.put("msg", msg);
jsonResult = Json.Encode(result);
action.setAjaxOutData(new ByteArrayInputStream(jsonResult.getBytes("utf-8")));
return;
}
boolean flag = true;
Session session = manageServ.getCommonServ1().getCommonDao().getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
try {
for (int i = 0; i < dataList.size(); i++) {
Map dataMap = dataList.get(i);
String cityType = CommonManage.toNotNullString(dataMap.get("cityType"));
String cost = CommonManage.toNotNullString(dataMap.get("cost"));
// String startDate = CommonManage.toNotNullString(dataarray.get("startDate"));
// String endDate = CommonManage.toNotNullString(dataarray.get("endDate"));
SalesCostStandard SalesCostStandard = new SalesCostStandard();
SalesCostStandard.setCityType(cityType);
SalesCostStandard.setCost(cost);
// SalesCostStandard.setStartDate(startDate);
// SalesCostStandard.setEndDate(endDate);
if (CommonManage.toNotNullString(dataMap.get("startDate")).equals("")) {
SalesCostStandard.setStartDate(DateUtils.convertStringToTimestamp("2000-01-01", DateUtils.FORMAT2));
} else {
SalesCostStandard.setStartDate(
DateUtils.convertStringToTimestamp(CommonManage.toNotNullString(dataMap.get("startDate")) + "", DateUtils.FORMAT2));
}
if (CommonManage.toNotNullString(dataMap.get("endDate")).equals("")) {
SalesCostStandard.setEndDate(DateUtils.convertStringToTimestamp("9999-01-01", DateUtils.FORMAT2));
} else {
SalesCostStandard.setEndDate(
DateUtils.convertStringToTimestamp(CommonManage.toNotNullString(dataMap.get("endDate")) + "", DateUtils.FORMAT2));
}
session.save(SalesCostStandard);
}
session.flush();
tx.commit();
result.put("flag", true);
// result.put("msg", e.getMessage());
action.setAjaxOutData(new ByteArrayInputStream(Json.Encode(result).getBytes("utf-8")));
return;
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
// --------
result.put("flag", false);
result.put("msg", e.getMessage());
action.setAjaxOutData(new ByteArrayInputStream(Json.Encode(result).getBytes("utf-8")));
return;
} finally {
session.close();
}
}
/**
* 从exportOrderDeatil抽取公共函数用作粘贴板内容的复制粘贴
*
* @param str{String}
* clipboardData.getData("Text")
* @return Array 1000行以内的excel数组
* @author Leo
* @since 201904
*/
var excelData;
var arrMaxLength = 1000;
$(function() {
var body = $(document.body);
if (body) {
body.bind({
paste : function(e) {
var clipboardData = window.clipboardData; // IE
if (!clipboardData) { // chrome
clipboardData = e.originalEvent.clipboardData
}
if (!(clipboardData && clipboardData.items)) {
return;
}
excelData = clipboardData.getData("Text");
var eData = getExcelData();
// 如果没有这个方法就报错
try {
if (excelData instanceof Array) {
if(eData && eData.length > 0) {
window.pasttoGrid(eData);
}
} else {
alert(eData);
}
} catch (e) {
console.log(e);
}
}
});
} else {
console.log("缺少body元素,请重写。");
}
});
/**
*
* @returns 1000行以内的二维数组
*/
function getExcelData() {
var isIE = !compatibleBrowser();
if (isIE) {
excelData = clipboardData.getData('text');
}
if (excelData) {
var newArr = [];
if (typeof excelData === "string") {
newArr = excelData.split("\n");
if (newArr.length < 0) {
return "复制内容空白!";
}
for (i = 0; i < newArr.length; i++) {
var item = newArr[i];
newArr[i] = item.replace(/\"/g, "").replace(/(^\s*)/g, "")
.replace(/(\s*$)/g, "");
}
excelData = newArr.slice(0, newArr.length - 1);
}
if (excelData instanceof Array) {
if (excelData.length > arrMaxLength) {
var newArr = excelData.slice(0, arrMaxLength);
excelData = newArr;
}
}
return excelData;
} else {
if (isIE) {
return "没有获取到内容!";
} else {
return "非IE浏览器请先按键盘“Ctrl + V”";
}
}
}
function getFirstColumnArray(arr) {
var newArr = [];
if (arr) {
newArr = new Array(arr.length);
for (i = 0; i < arr.length; i++) {
var itemArr = arr[i].split(/\s+/);
if (itemArr != null && itemArr.length > 0) {
newArr[i] = itemArr[0];
} else {
newArr[i] = "";
}
}
}
return newArr;
}
function compatibleBrowser() {
var userAgent = window.navigator.userAgent;
if (userAgent.indexOf("Chrome") > -1 || userAgent.indexOf("Firefox") > -1
|| userAgent.indexOf("Opera") > -1) {
return true;
} else {
return false;
}
}
分享到:
相关推荐
网页表格批量粘贴功能是网页开发中的一个实用技巧,它允许用户从Excel或其他来源复制数据,然后一键粘贴到网页的表格中,极大地提高了数据录入的效率。在本实例中,我们将探讨如何利用JavaScript实现这一功能,特别...
批量自动粘贴
用于在Excel中批量粘贴大量附件的插件。在英文版Excel 2010/2013/2016 测试通过。 安装: 1. 将 .xlam 文件复制到 excel add-in 目录 (默认在 C:\Users\<uid>\AppData\Roaming\Microsoft\AddIns\); 2. 打开 excel, ...
在Excel VBA(Visual Basic for Applications)中,批量复制和粘贴至指定位置是一项非常实用的技巧,尤其在处理大量数据时能显著提高工作效率。VBA是Microsoft Office套件中的编程环境,允许用户通过编写宏或自定义...
一次复制多行,实现快速粘贴 支持文件拖动,自定义分割符号,默认为换行分割 支持右键菜单功能;快速打开文件,清空内容
在Windows Forms(Winform)应用开发中,常常需要实现文件或文件夹的批量复制功能,尤其是在数据迁移、备份等场景下。本示例代码将详细讲解如何使用C#语言在Winform环境中实现这一功能。 首先,我们需要理解C#的...
本工具可以将预先收集的数据,按指定顺序快速粘贴到指定软件中,每粘贴完一项数据软件会自动跳到下一项数据并复制到剪贴板中,而我们只需要完成粘贴操作即可。可以节省了反复切换软件、反复 Ctrl + C与Ctrl + V的...
破解批改网不能粘贴的方法 在今天的数字化时代,随着网络技术的发展,考试和作业的方式也在不断演变。许多教育机构和考试平台开始使用批改网来防止学生作弊和抄袭,例如禁止粘贴的功能。但是,这也引起了学生和考试...
本主题将深入探讨如何利用Python从Excel表格中批量复制并粘贴数据到新的工作表,提高办公自动化水平。 首先,我们需要了解的关键知识点是Python的pandas库,它是用于数据分析的强大工具。pandas提供了DataFrame对象...
如链接、文本内容,链接可按指定筛选规则进行过滤筛选,可以设置成监听模式,在剪切板内容改变时自动捕获,可以捕获网页中的图片、视频、音乐等资源的链接地址,可以截取剪切板中指定的数据,还提供了批量数据粘贴的...
基于kindeditor实现批量粘贴word文档中的图文到富文本中,不过该实现需要基于第三方控件配合前段代码实现
标题“ARCGIS批量导入属性内容”所涉及的知识点主要包括在ARCGIS软件中批量导入属性表数据的操作方法,这一过程的目的是为了将大量属性信息快捷、方便、省事地导入到ARCGIS的属性表中,并且尽量减少错误。...
标题中的"F11粘贴"指的是在某些软件或操作系统中,使用F11快捷键进行内容的快速粘贴功能。这种功能通常是针对程序员、文本编辑者等用户设计的,为了提高他们的工作效率。在某些特定环境下,例如编程环境中,F11可能...
Python 自动办公- Python从Excel表中批量复制粘贴数据到新表 Python源码Python 自动办公- Python从Excel表中批量复制粘贴数据到新表 Python源码Python 自动办公- Python从Excel表中批量复制粘贴数据到新表 Python...
实现将复制的excel的内容粘贴到html 表格的输入框中的功能
本教程将详细讲解如何利用C#实现自定义对象的复制和粘贴,包括三种不同的方法:直接使用自定义对象、借助声音文件以及序列化后通过内存流操作。 首先,让我们探讨直接使用自定义对象复制粘贴的方法。在C#中,我们...
这款工具的核心功能在于批量复制和批量粘贴,对于需要在多个位置输入相同内容或者快速复制多行数据的情况,它提供了一种便捷的解决方案。 在IT行业中,尤其是在数据录入、数据分析、编程开发等领域,频繁的复制粘贴...
在本文中,我们将探讨如何使用Python的Pillow库来实现批量处理图片,将一张图片粘贴到另一张图片上,并将结果保存。Pillow库是Python的一个强大的图像处理库,它提供了丰富的图像处理功能,包括读取、操作和保存各种...
本教程将详细介绍如何使用JavaScript(js)实现从Excel文档批量复制数据并粘贴到HTML表格(table)中的技术。这一功能对于数据处理、报表展示以及用户交互等方面具有很高的实用价值。 首先,我们要明白JavaScript...
untiy webgl输入中文和复制粘贴 使用方法见https://blog.csdn.net/weixin_44568736/