当前位置:首页 » 文件管理 » java上传xls

java上传xls

发布时间: 2022-11-02 22:31:11

Ⅰ 如何用java把数据写入到excel

添加Spire.Xls.jar依赖,可以创建Excel,或者对现有Excel文档进行处理。

1.写入数据到指定单元格

//CreateaWorkbookinstance
Workbookwb=newWorkbook();
//Getthefirstworksheet
Worksheetsheet=wb.getWorksheets().get(0);
//Writetextinthespecificcell
sheet.getCellRange(1,1).setText("HelloWorld");
//Savethefile
wb.saveToFile("HelloWorld.xlsx",ExcelVersion.Version2016)

2. 将数组导入Excel

//CreateaWorkbookinstance
Workbookwb=newWorkbook();
//Getthefirstworksheet
Worksheetsheet=wb.getWorksheets().get(0);
//Insertanarraytothefirstcolumn()
String[]stringArray=newString[]{"Apple","Pear","Grape","Banana","Peach"}
sheet.insertArray(stringArray,1,1,true);
//Savethefile
wb.saveToFile("InsertArray.xlsx",ExcelVersion.Version2016);

Ⅱ java 我要将xls格式的文件导入解析入库,但被框架的jar类拦截

1. 以.csv格式读取
将.xls转换成.csv的文本格式,然后再用php分析这个文件,和PHP分析文本没有什么区别。
优点:跨平台,效率比较高、可以读写。
缺点:只能直接使用.csv的文件,如果经常接受.xls二进制文件的话需要手工转换,不能自动化。一个文件只有一个SHEET。
PHP有自带的分析.csv函数:fgetcsv
2. ODBC链接数据源
优点:支持多种格式,cvs, xls等。支持读写,使用标准SQL语言,和SQLSERVER、MYSQL数据库几乎完全一样。
缺点:值支持windows服务器
3. PHP自定义类
优点:跨平台。某些类支持写操作。支持.xls二进制文件
常用的类有phpExcelReader、PHPExcel。其中后者支持读写,但是需要php5.2以上版本。
phpExcelReader是专门用来读取文件的。返回一个数组,包含表格的所有内容。

Ⅲ 1.如何将客户端的 xls 上传到 服务器 2.将刚刚的文件导入服务器SqlServer 3.服务端用java

xls只是一个文件而已,前台将文件上传到服务器即可,
在服务器得到该上传文件的数据流,序列化后存入数据库就行了
不过为什么要存到数据库去呢,你可以存到硬盘中,在数据库中存这个文件在硬盘中的地址就行了

Ⅳ 从excel表格读取数据用Java代码实现批量上传写入数据库

java操作Excel的一种方法:在开源世界中,有两套比较有影响的API可供使用,一个是POI,一个是jExcelAPI。其中jExcelAPI是一个韩国程序员的作品,虽然没有POI那样血统高贵,但是在使用过程中,感觉简单方便,对中文支持非常好,功能也比较强大。它的下载地址是: http://www.andykhan.com/jexcelapi/ 当前的最高版本是2.4。作者的网站上对它的特征有如下描述:

● 支持Excel 95-2000的所有版本
● 生成Excel 2000标准格式
● 支持字体、数字、日期操作
● 能够修饰单元格属性
● 支持图像和图表

搭建环境

将下载后的文件解包,得到jxl.jar,放入classpath,安装就完成了。

基本操作

一、创建文件

拟生成一个名为“测试数据.xls”的Excel文件,其中第一个工作表被命名为“第一页”,大致效果如下:

代码(CreateXLS.java):

//生成Excel的类
import java.io.*;
import jxl.*;
import jxl.write.*;

public class CreateXLS
{
public static void main(String args[])
{
try
{
//打开文件
WritableWorkbook book=
Workbook.createWorkbook(new File(“测试.xls”));

//生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet=book.createSheet(“第一页”,0);

//在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
//以及单元格内容为test
Label label=new Label(0,0,”test”);

//将定义好的单元格添加到工作表中
sheet.addCell(label);

/*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
jxl.write.Number number = new jxl.write.Number(1,0,789.123);
sheet.addCell(number);

//写入数据并关闭文件
book.write();
book.close();

}catch(Exception e)
{
System.out.println(e);
}
}
}

编译执行后,会在当前位置产生一个Excel文件。

三、读取文件

以刚才我们创建的Excel文件为例,做一个简单的读取操作,程序代码如下:

//读取Excel的类
import java.io.*;
import jxl.*;

public class ReadXLS
{
public static void main(String args[])
{
try
{
Workbook book=
Workbook.getWorkbook(new File(“测试.xls”));

//获得第一个工作表对象
Sheet sheet=book.getSheet(0);

//得到第一列第一行的单元格
Cell cell1=sheet.getCell(0,0);
String result=cell1.getContents();
System.out.println(result);

book.close();

}catch(Exception e)
{
System.out.println(e);
}
}
}

程序执行结果:test

四、修改文件

利用jExcelAPI可以修改已有的Excel文件,修改Excel文件的时候,除了打开文件的方式不同之外,其他操作和创建Excel是一样的。下面的例子是在我们已经生成的Excel文件中添加一个工作表:

//修改Excel的类,添加一个工作表
import java.io.*;
import jxl.*;
import jxl.write.*;

public class UpdateXLS
{
public static void main(String args[])
{
try
{
//Excel获得文件
Workbook wb=Workbook.getWorkbook(new File(“测试.xls”));

//打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook book=
Workbook.createWorkbook(new File(“测试.xls”),wb);

//添加一个工作表
WritableSheet sheet=book.createSheet(“第二页”,1);

sheet.addCell(new Label(0,0,”第二页的测试数据”));

book.write();
book.close();
}catch(Exception e)
{
System.out.println(e);
}
}
}

执行结果如图:

高级操作

一、 数据格式化

在Excel中不涉及复杂的数据类型,能够比较好的处理字串、数字和日期已经能够满足一般的应用。

1、 字串格式化

字符串的格式化涉及到的是字体、粗细、字号等元素,这些功能主要由WritableFont和WritableCellFormat类来负责。假设我们在生成一个含有字串的单元格时,使用如下语句,为方便叙述,我们为每一行命令加了编号:

WritableFont font1=
new WritableFont(WritableFont.TIMES,16,WritableFont.BOLD); ①

WritableCellFormat format1=new WritableCellFormat(font1); ②

Label label=new Label(0,0,”data 4 test”,format1) ③

其中①指定了字串格式:字体为TIMES,字号16,加粗显示。WritableFont有非常丰富的构造子,供不同情况下使用,jExcelAPI的java-doc中有详细列表,这里不再列出。

②处代码使用了WritableCellFormat类,这个类非常重要,通过它可以指定单元格的各种属性,后面的单元格格式化中会有更多描述。

③处使用了Label类的构造子,指定了字串被赋予那种格式。

在WritableCellFormat类中,还有一个很重要的方法是指定数据的对齐方式,比如针对我们上面的实例,可以指定:

//把水平对齐方式指定为居中
format1.setAlignment(jxl.format.Alignment.CENTRE);

//把垂直对齐方式指定为居中
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);

二、单元格操作

Excel中很重要的一部分是对单元格的操作,比如行高、列宽、单元格合并等,所幸jExcelAPI提供了这些支持。这些操作相对比较简单,下面只介绍一下相关的API。

1、 合并单元格

WritableSheet.mergeCells(int m,int n,int p,int q);

作用是从(m,n)到(p,q)的单元格全部合并,比如:
WritableSheet sheet=book.createSheet(“第一页”,0);

//合并第一列第一行到第六列第一行的所有单元格
sheet.mergeCells(0,0,5,0);

合并既可以是横向的,也可以是纵向的。合并后的单元格不能再次进行合并,否则会触发异常。

2、 行高和列宽

WritableSheet.setRowView(int i,int height);

作用是指定第i+1行的高度,比如:

//将第一行的高度设为200
sheet.setRowView(0,200); 能够获取到java里面那么再封装保存进数据库也就简单了,希望这样可以帮到你。

Ⅳ java上传excel无法兼容ie11和chrome

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<title>批量录入excel表格</title>
<metahttp-equiv="content-type"content="text/html;charset=UTF-8">
</head>
<scripttype="text/javascript">
//FX获取文件路径方法
functionreadFileFirefox(fileBrowser){
try{
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch(e){
alert('无法访问本地文件,由于浏览器安全设置,请用IE浏览器打开。');
return;
}
varfileName=fileBrowser.value;//这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
varfile=Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try{
file.initWithPath(fileName.replace(///g,"\\"));
}
catch(e){
if(e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH)throwe;
alert("File'"+fileName+"'cannotbeloaded:relativepathsarenotallowed..");
return;
}
if(file.exists()==false){
alert("File'"+fileName+"'notfound.");
return;
}

returnfile.path;
}

//根据不同浏览器获取路径
functiongetvl(){
//判断浏览器
varSys={};
varua=navigator.userAgent.toLowerCase();
vars;
(s=ua.match(/msie([d.]+)/))?Sys.ie=s[1]:
(s=ua.match(/firefox/([d.]+)/))?Sys.firefox=s[1]:
(s=ua.match(/chrome/([d.]+)/))?Sys.chrome=s[1]:
(s=ua.match(/opera.([d.]+)/))?Sys.opera=s[1]:
(s=ua.match(/version/([d.]+).*safari/))?Sys.safari=s[1]:0;
varfile_url="";
if(Sys.ie<="6.0"){
file_url=document.getElementById("file").value;
}elseif(Sys.ie>="7.0"){
varfile=document.getElementById("file");
file.select();
file_url=document.selection.createRange().text;
}elseif(Sys.firefox){
file_url=readFileFirefox(document.getElementById("file"));
}
document.getElementById("filepath").value=file_url.replace(/\/g,'/');//把转化成/
varfiles=document.getElementById("filepath").value

if(files.substr(files.length-4)=="xlsx"||files.substr(files.length-4)==".xls"){
document.frm.action="import_result.jsp";
document.frm.submit();
}else{
alert("请选择office2007或office2003;以xlsx(xls)结尾...");
returnfalse;
}

}
</script>
<formaction=""method="post"name="frm"onsubmit="getvl();"target="import_result">
数据的批量导入:<inputtype="file"id="file"style="height:4%"/>
<inputtype="hidden"id="filepath"name="filepath"value=""/>
<inputtype="button"onclick="getvl();"value="Excel导入"style="height:4%"/>
</form>
</html>

Ⅵ Linux下Java上传Excel文件问题求解

错误中显示是ImportService.import1里面的地方出错,而贴上来的代码是另一个方法的。。。。。。。。调试不了。

Ⅶ java上传xls文件到服务器后打开提示发现不可读取的内容

页面jsp文件
<form name="add" action="/gxtWeb/lvjcontacts/manyContacts.action" method="post"enctype="multipart/form-data" onsubmit="return checkNull();">
<s:file name="upload"></s:file>
<input type="submit" value="导入信息" >
</form>
action处理:
public class ManyContactsAction extends ActionSupport {
private File upload;
private String uploadContentType;// 要上传的文件的类型
private String uploadFileName;// 要上传的文件
private ContactsManager manager;
private Contacts cbean;
private Persons pbean;
private Long gid;
private String result;
public String execute() throws Exception {
// 检查后缀名是否符合条件,同时更改上传文件的文件名
int filesize = this.getUploadFileName().length();
String fileEx = this.getUploadFileName().substring(
this.getUploadFileName().indexOf("."), filesize);
//获取文件名
String fileName=uploadFileName.substring(0,uploadFileName.indexOf("."));
// 获得上传路径
String realPath = ServletActionContext.getServletContext().getRealPath(
"/UploadFile/");
File saveFile=null;
if (upload != null) {
// 修改文件名,使上传后不至于重复替代
// this.uploadFileName = new Date().getTime() + fileEx;
saveFile = new File(new File(realPath), uploadFileName);
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}

FileUtils.File(upload, saveFile);// 到这里,文件已上传成功
// 下面进行判断文件是否是rar文件,是就需要解压
if (fileEx.equals(".rar")) {
System.out.println("saveFile:" + saveFile);//rar文件所在保存路径
System.out.println("realPath:" + realPath);//解压后保存路径
// 定义解压字符串,用于解压上传的rar文件,注意此处需要一个unrar.exe文件
String rarpath = ServletActionContext.getServletContext()
.getRealPath("/rarFile/UNRAR.exe x -t -o+ -p- \"");
String jieya = rarpath + saveFile + "\" \"" + realPath + "\"";
Process p1 = Runtime.getRuntime().exec(jieya);// 将传输的rar文件解压
p1.waitFor();
p1.destroy();
FileUtils.deleteQuietly(saveFile);// 删除rar文件
saveFile=new File(new File(realPath),fileName+".xls");
System.out.println("解压后:"+saveFile);
ServletActionContext.getResponse().getWriter().println(
"success!!");
}
if (fileEx.equals(".xls") || fileEx.equals(".xlsx")) {
// 开始读取文件了,获得第一列手机号码
Workbook persons = Workbook.getWorkbook(saveFile);// 获得xls文件
Sheet sheet = persons.getSheet(0);// 获得第一个工作簿
System.out.println("列数:" + sheet.getColumns());
int count = sheet.getRows();// 取得记录数,count行
String cphone;
// 遍历行,获得列数据
for (int i = 0; i < count; i++) {
cphone = sheet.getCell(0, i).getContents();// 第一列的所有行
pbean = manager.getPerson(cphone);// 获得该用户,查询别的信息
cbean = new Contacts();
Long contactsid = pbean.getId();
Long pid = 10002L;
cbean.setContactsid(contactsid);// 联系人id
cbean.setPid(pid);// 用户本身的PID
cbean.setCid("cid");// 关系的学校ID
cbean.setGid(gid);// 分组id
manager.addPerson(cbean);
this.contactsLog.writeLog("10002", "批量添加联系人", "批量添加联系人操作","");
System.out.println("添加成功!");
}
}
return SUCCESS;
} else {
return INPUT;
}
}
}

xml配置:
<action name="manyContacts" class="manyContactAction">
<result name="success" type="redirectAction">personInfo.action
</result>
<result name="input" type="redirectAction">showmangpersons.action
</result>
</action>
注意:在文件解压时,需要一个unrar.exe文件,这个文件应保存在工程相应的目录下,我就放在webapps里面了,
按照上面的路径即可获得解压文件并进行解压。
这里配置文件没写任何限制,拦截器之类,都在action里面进行判断了,这里只做了类型判断,没有别的。
[java] view plain
页面jsp文件
<form name="add" action="/gxtWeb/lvjcontacts/manyContacts.action" method="post" enctype="multipart/form-data" onsubmit="return checkNull();">
<s:file name="upload"></s:file>
<input type="submit" value="导入信息" >
</form>
action处理:
public class ManyContactsAction extends ActionSupport {
private File upload;
private String uploadContentType;// 要上传的文件的类型
private String uploadFileName;// 要上传的文件
private ContactsManager manager;
private Contacts cbean;
private Persons pbean;
private Long gid;
private String result;
public String execute() throws Exception {
// 检查后缀名是否符合条件,同时更改上传文件的文件名
int filesize = this.getUploadFileName().length();
String fileEx = this.getUploadFileName().substring(
this.getUploadFileName().indexOf("."), filesize);
//获取文件名
String fileName=uploadFileName.substring(0,uploadFileName.indexOf("."));
// 获得上传路径
String realPath = ServletActionContext.getServletContext().getRealPath(
"/UploadFile/");
File saveFile=null;
if (upload != null) {
// 修改文件名,使上传后不至于重复替代
// this.uploadFileName = new Date().getTime() + fileEx;
saveFile = new File(new File(realPath), uploadFileName);
if (!saveFile.getParentFile().exists()) {
saveFile.getParentFile().mkdirs();
}

FileUtils.File(upload, saveFile);// 到这里,文件已上传成功
// 下面进行判断文件是否是rar文件,是就需要解压
if (fileEx.equals(".rar")) {
System.out.println("saveFile:" + saveFile);//rar文件所在保存路径
System.out.println("realPath:" + realPath);//解压后保存路径
// 定义解压字符串,用于解压上传的rar文件,注意此处需要一个unrar.exe文件
String rarpath = ServletActionContext.getServletContext()
.getRealPath("/rarFile/UNRAR.exe x -t -o+ -p- \"");
String jieya = rarpath + saveFile + "\" \"" + realPath + "\"";
Process p1 = Runtime.getRuntime().exec(jieya);// 将传输的rar文件解压
p1.waitFor();
p1.destroy();
FileUtils.deleteQuietly(saveFile);// 删除rar文件
saveFile=new File(new File(realPath),fileName+".xls");
System.out.println("解压后:"+saveFile);
ServletActionContext.getResponse().getWriter().println(
"success!!");
}
if (fileEx.equals(".xls") || fileEx.equals(".xlsx")) {
// 开始读取文件了,获得第一列手机号码
Workbook persons = Workbook.getWorkbook(saveFile);// 获得xls文件
Sheet sheet = persons.getSheet(0);// 获得第一个工作簿
System.out.println("列数:" + sheet.getColumns());
int count = sheet.getRows();// 取得记录数,count行
String cphone;
// 遍历行,获得列数据
for (int i = 0; i < count; i++) {
cphone = sheet.getCell(0, i).getContents();// 第一列的所有行
pbean = manager.getPerson(cphone);// 获得该用户,查询别的信息
cbean = new Contacts();
Long contactsid = pbean.getId();
Long pid = 10002L;
cbean.setContactsid(contactsid);// 联系人id
cbean.setPid(pid);// 用户本身的PID
cbean.setCid("cid");// 关系的学校ID
cbean.setGid(gid);// 分组id
manager.addPerson(cbean);
this.contactsLog.writeLog("10002", "批量添加联系人", "批量添加联系人操作", "");
System.out.println("添加成功!");
}
}
return SUCCESS;
} else {
return INPUT;
}
}
}

xml配置:
<action name="manyContacts" class="manyContactAction">
<result name="success" type="redirectAction">personInfo.action
</result>
<result name="input" type="redirectAction">showmangpersons.action
</result>
</action>
注意:在文件解压时,需要一个unrar.exe文件,这个文件应保存在工程相应的目录下,我就放在webapps里面了,
按照上面的路径即可获得解压文件并进行解压。
这里配置文件没写任何限制,拦截器之类,都在action里面进行判断了,这里只做了类型判断,没有别的。

Ⅷ 用java如何实现将excel文件(.xls)从一个服务器上传到另一台服务器

用java如何实现将excel文件(.xls)从一个服务器上传到另一台服务器 和
用java如何实现将文件从一个服务器上传到另一台服务器 有什么区别吗?

这两台服务器又分别是什么操作系统?是通过页面操作传送,还是后台传送?

Ⅸ 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文件中读取数据显示或写入数据库。

热点内容
忍3什么配置可以过精7 发布:2024-07-04 03:52:21 浏览:842
java防止反编译 发布:2024-07-04 03:43:06 浏览:618
数据库权限控制 发布:2024-07-04 03:42:34 浏览:74
传奇地图触发脚本 发布:2024-07-04 03:27:43 浏览:711
传统的数据库模型 发布:2024-07-04 03:22:45 浏览:391
sql2000数据库导入数据库 发布:2024-07-04 03:18:27 浏览:276
oraclesql计算时间差 发布:2024-07-04 03:09:11 浏览:120
搭建起来的云服务器 发布:2024-07-04 03:04:21 浏览:227
c51编译环境设置 发布:2024-07-04 03:02:53 浏览:947
sqlserver优化 发布:2024-07-04 02:46:32 浏览:903