社区
JavaScript
帖子详情
求解决方案
lavender1019
2009-12-28 11:28:10
目前我有一批数据需要从客户端的Excel文件中导入,并且对数据中的某一行进行逻辑校验和重复校验(同个文档中是否有相同数据),然后将校验结果在页面中显示,并将有错误的列在前面。数据量在10000条左右。我曾尝试开发过一个,但是当数据大于400条就会造成页面卡死,没反应。
有没有比较好的方法解决,由于放在互联网上,速度也不能太慢。
...全文
108
4
打赏
收藏
求解决方案
目前我有一批数据需要从客户端的Excel文件中导入,并且对数据中的某一行进行逻辑校验和重复校验(同个文档中是否有相同数据),然后将校验结果在页面中显示,并将有错误的列在前面。数据量在10000条左右。我曾尝试开发过一个,但是当数据大于400条就会造成页面卡死,没反应。 有没有比较好的方法解决,由于放在互联网上,速度也不能太慢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaojing7
2009-12-28
打赏
举报
回复
10000数据,如果采用页面级DOM操作,想不死也难。
直接数据库中操作吧
千游
2009-12-28
打赏
举报
回复
我用的这个,可以用,但是没有经过大量数据测试:
public List uploadExcel(String filePath) {
List<String> list = new ArrayList<String>();
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
filePath));//将得到的文件放到HSSFWorkbook
HSSFSheet sheet = workbook.getSheetAt(0);// 在Excel文档中,第一张工作表的缺省索引是0
int rows = sheet.getPhysicalNumberOfRows();// 获取到Excel文件中的所有行数
// 遍历列
for (int i = 1; i < rows; i++) {
// 读取左上端单元格
HSSFRow row = sheet.getRow(i);//得到行数
String value = "";
// int cells = row.getPhysicalNumberOfCells();// 获取到Excel文件中的所有的列
int cells = sheet.getRow(i).getLastCellNum();
// System.out.println("第"+i+"行:"+sheet.getRow(i).getLastCellNum());
int ce = row.getLastCellNum();
if (row != null) {// 行不为空
// 遍历列
for (int j = 0; j < row.getLastCellNum(); j++) {//Resource.xls每行具有八列
HSSFCell cell = row.getCell((short) j);// 获取到列的值
if (cell != null) {
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_FORMULA:
break;
case HSSFCell.CELL_TYPE_NUMERIC:// 判断是否为数字
value += cell.getNumericCellValue() + ";";
break;
case HSSFCell.CELL_TYPE_BLANK: // 判断是否为空格,若为空格,则用&代替
value += "&" + ";";
break;
case HSSFCell.CELL_TYPE_STRING:// 判断是否为字符串
value += cell.getStringCellValue() + ";";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
break;
case HSSFCell.CELL_TYPE_ERROR:
break;
default:
break;
}
}else{
continue;
}
}
}
StringBuffer sb = new StringBuffer();
for(int m=0;m<row.getLastCellNum();m++){
sb.append("&;");
}
if (!value.equals(sb.toString())) {// 若一行为空格,则不加入list集合中
list.add(value);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
xiyunfang
2009-12-28
打赏
举报
回复
不懂这个,帮顶
IBM数字化医疗系统平台
解决方案
.ppt
IBM数字化医疗系统平台
解决方案
.ppt
redis布隆过滤实现源码及例子
redis实现布隆过滤
Vue项目中解决跨域问题的实用方法
资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在开发 Vue 项目时,跨域问题是一个常见的挑战,主要是由于浏览器的同源策略限制了不同源之间的请
求
。本文将介绍几种解决跨域问题的方法,适用于使用 vue-cli 脚手架搭建的项目。 在后端服务器上,可以通过修改响应头来解决跨域问题。例如,在 PHP 中,可以设置 Access-Control-Allow-Origin 为 *,以允许所有来源的请
求
,同时设置 Access-Control-Allow-Methods 为 POST, GET,以允许跨域的 POST 和 GET 请
求
。代码示例如下: 在前端开发环境中,可以使用 http-proxy-middleware 来设置代理,从而绕过浏览器的同源策略。在 vue-cli 项目中,打开 config/index.js 文件,并在 proxyTable 对象中添加以下配置: 这样,前端的请
求
路径以 /api 开头时,http-proxy-middleware 会自动将请
求
转发到目标地址。 axios 是一个常用的 HTTP 库,用于处理前后端交互。可以在项目的 main.js 文件中全局配置 axios,例如设置 POST 请
求
的 Content-Type: 在组件中,可以通过 this.$axios 发起请
求
: Fetch API 是另一种发起 HTTP 请
求
的方式,同样支持跨域。在 Vue 组件中,可以使用以下代码发起 POST 请
求
: 如果目标服务器只支持 JSONP,可以使用 jQuery 的 $.ajax 方法,并设置 dataType 为 JSONP。例如: Vue 项目中的跨域问题可以通过调整后端服务器的 Header 或在前端使用 http-proxy-middleware 代理来解决。对于支持 JSONP 的 API,还
安川变频器1000系列制动单元及电阻器使用说明
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8
项目管理交底工程部.ppt
项目管理交底工程部.ppt
JavaScript
87,996
社区成员
224,708
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章