上传exceljava
‘壹’ java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开,
1、转换格式法就是将受损的Excel XP工作簿另存格式选为SYLK。如果可以打开受损文件,只是不能进行各种编辑和打印操作,那么建议首先尝试这种方法。2、直接修复法最新版本的Excel XP在“打开”窗口的“打开”按钮内有直接修复受损文件的“打开并修复”功能,这种方法适用于常规方法无法打开受损文件的情况。3、偷梁换柱法遇到无法打开受损的Excel XP文件时,也可以尝试使用Word来打开它。操作如下:(1)运行Word程序,选择需要打开的Excel文件;(2)如是首次运用Word程序打开Excel XP文件,可能会有“Microsoft Word无法导入指定的格式。这项功能目前尚未安装,是否现在安装?”的提示信息,此时可插入Microsoft Office安装盘进行安装;(3)按照Word程序的提示选择修复整个工作簿还是某个工作表;(4)先将文件中被损坏的数据删除,再将鼠标移动到表格中,并在菜单栏中依次执行“表格→转换→表格转换成文字”命令,选择制表符为文字分隔符,将表格内容转为文本内容,然后另存为纯文本格式文件;(5)运行Excel XP程序,打开刚保存的文本文件;(6)随后根据“文本导入向导”的提示就能顺利打开该文件了。
修复后的工作表与原工作表基本一样,不同的是表格中所有的公式都需重新设置,还有部分文字、数字格式丢失了。4、自动修复法
此法适用于Excel XP程序运行出现故障关闭程序或断电导致的文件受损。重新运行Excel XP,它会自动弹出“文档恢复”窗口,并在该窗口中列出已自动恢复的所有文件。用鼠标选择要保留的文件,并单击指定文件名旁的箭头,根据需要选择“打开”、“另存为”、“显示修复”。
在缺省状态下Excel XP是不会启用自动修复功能的,因此预先设置:首先在菜单栏中依次点击“工具→选项”命令,在设置框中单击“保存”标签,将“禁用自动恢复”复选框取消,然后选中“保存自动恢复信息,每隔X分钟”复选项,并输入指定的间隔频率,最后点击“确定”完成设置。
如果还没有自动弹出“文档恢复”窗口,可以尝试用手工的方法打开自动恢复的文件:依次执行“文件→打开”命令,利用“查找范围”框定位并打开Excel XP保存自动恢复文件的文件夹,要是不知道那个文件夹的位置,可以查看“自动恢复文件保存位置”框中的路径,接着在“文件类型”选择对话框中,选中“所有文件(*.*)”选项,并选择要恢复的文件,最后单击“打开”按钮,打开文件进行自动修复。5、工具修复法
如果上面的几种方法都不能修复文件,还可以借助专门用来修复受损Excel XP文件的“ExcelRecovery”。该软件会自动将修复程序加到Excel软件中,表现为在“文件”菜单下增添一项“Recovery”命令,它能自动以修复方式打开受损文件。
‘贰’ JAVA Excel文件上传,上传后的Excel文件打开时报有不可读取的内容,怎么回事
这样接收,当然不行了,,,,,,使用smartupload等接收上传,或Struts接收上传的文件
文件上传,要浏览器端编码的 <form action="UploadServlet" method="post" enctype="multipart/form-data">
‘叁’ java web 怎么导入excel文件
1.要正确的将Web客户端的Excel文件导入到服务器的数据库中,需要将客户端的Excel文件上传到服务器上。可以使用FileUpload控件完成。2.Excel文件上传到服务器指定的目录中,这里假设是该站点的upfiles目录中。3.使用SQL语句从upfiles目录中的上传Excel文件中读取数据显示或写入数据库。
‘肆’ Java Excel上传失败,无日志
1、JavaExcel文件的本身漏洞导致了它有信息泄露的风险,所以对JavaExcel文件的上传做了一定的限制。
2、解决方法。进入管理系统、安全管理,关闭文件上传校验的按钮。以上是JavaExcel上传失败,无日志的原因和解决办法。
‘伍’ Java上传Excel表格
public boolean myapp_readexcel(String filePath, int sheetNum) {//上传的文件地址,sheetNum这个是excel下的那个sheet1的标志,sheet1这里对应数字是0
InputStream ins = null;
Workbook book = null;
try {
ins = new FileInputStream(filePath);
book = WorkbookFactory.create(ins);
getInsertData(book.getSheetAt(sheetNum));//这里面进行读取操作和业务逻辑
ins.close();
} catch (Exception e1) {
e1.printStackTrace();
} finally {
if (ins != null) {
try {
ins.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return res;
}
private boolean getInsertData(Sheet sheet) {
boolean res = false;
Iterator<Row> rit = sheet.iterator();//每一行的迭代
while (rit.hasNext()) {
lineMap = getDataByRow(rit);
System.out.println(lineMap.get("0"));
System.out.println(lineMap.get("1"));...................................
}
}
public Map<String,String> getDataByRow(Iterator<Row> rit){
Map<String, String> lineMap;
Row row;
Cell cell;
row = rit.next();
lineMap = new ConcurrentHashMap<String, String>(); // 用于接收每列的数据。
for (int i = 0; i <= row.getLastCellNum(); i++) {
cell = row.getCell(i);
String k = ""; // 用于接收每个单元格的数据。
if (cell == null) {
lineMap.put(String.valueOf((i)), k); // 赋值。
continue;
}
switch (cell.getCellType()) {
case Cell.CELL_TYPE_BLANK:
k = "";
break;
case Cell.CELL_TYPE_ERROR:
k = Byte.toString(cell.getErrorCellValue());
break;
case Cell.CELL_TYPE_STRING:
k = cell.getRichStringCellValue().getString();
break;
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
k = sdf.format(cell.getDateCellValue());
} else {
k = Integer.toString((int) cell.getNumericCellValue());
}
break;
case Cell.CELL_TYPE_BOOLEAN:
k = Boolean.toString(cell.getBooleanCellValue());
break;
case Cell.CELL_TYPE_FORMULA:
k = cell.getCellFormula();
break;
default:
k = "";
}
if ((k != null) && (!"".equals(k))) {
lineMap.put(String.valueOf((i)), k); // 赋值。
} else {
lineMap.put(String.valueOf((i)), ""); // 赋值。
}
}
return lineMap;
}
‘陆’ Java上传excel,Excel数据或者格式会影响上传速度,Excel哪些因素会影响上传速度
如果只是文件上传,那么上传速度只是与文件大小有关,而与里面的数据是无关的。之所以2000条数据的Excel比3000条数据的Excel上传还慢,应该是你的上传过程除了上传文件,还做了数据解析(读取Excel)的功能,如果是这样的话,那么整个上传速度还与数据内容有关,虽然数据量小,但数据内容多,解析速度慢,这样也会导致你说的问题。
如果想解决此问题,可以分步进行,上传时只上传文件,后台接收到文件再统一解析处理。这样既容易查找问题,又可以很好的解耦。