//批量粘贴
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;
}
}
分享到:
相关推荐
进入ISAMS标记书籍+粘贴数据批量更新+在LS报告和学生注释 ISAMS实用程序(以前的ISAMs)添加有用和节省时间功能的链接在ISAMS网站上。我必须在ISAMS中使用标记书籍开始后创建了ISAMS实用程序扩展名并发现没有内置的...
公用数据管理功能包括新建、导入、导出、排序、复制、删除、清空、合并、公式计算等多种管理与计算功能。所有操作都在右键上、方便。 2 数据显示 数据在平面视图上显示和编辑,包括测网、点数据、线数据、场数据、...
电脑使用技巧大全 本文总结了60个电脑使用...20.上网时在地址栏内输入网址,系统会记录下来,虽然方便以后不用再重复,不过如果是公用的机子,又不想让别人知道自己到过哪些地方,可以按下Delete键删除记录的网址。
- **开启“公用程序管理器”**:`Windows+U`,管理辅助功能,适合有特殊需求的用户。 - **锁定计算机**:`Windows+L`,保护隐私,防止他人未经许可使用电脑。 #### Ctrl快捷键 - **保存**:`Ctrl+S`,在编辑文档时...
- **Ctrl + V**:粘贴,将剪贴板内容粘贴到当前位置。 - **Ctrl + A**:全选,选中页面或文档中的所有内容。 - **Ctrl + [** 和 **Ctrl + ]**:调整文字大小,主要用于文字处理软件中。 - **Ctrl + B**、**Ctrl + I*...
缓存使得公用,常用的信息以文本的形式存放在服务器端,系统会自己更新缓存的信息;大大减少了因对数据库存的查询而带来的大量资源占用, 特色二,生成静态html文件;由于频繁浏览内容页而带来的数据库大量操作,...