求解决方案

lavender1019 2009-12-28 11:28:10
目前我有一批数据需要从客户端的Excel文件中导入,并且对数据中的某一行进行逻辑校验和重复校验(同个文档中是否有相同数据),然后将校验结果在页面中显示,并将有错误的列在前面。数据量在10000条左右。我曾尝试开发过一个,但是当数据大于400条就会造成页面卡死,没反应。
有没有比较好的方法解决,由于放在互联网上,速度也不能太慢。
...全文
108 4 打赏 收藏 转发到动态 举报
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
  • 打赏
  • 举报
回复
不懂这个,帮顶
资源下载链接为: 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,还

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧