① 怎么用java将一个excel里面数据读出并写入另一个excel求助
使用jxl这个包
导入这个包下的
import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
然后
File f = new File("d:/view.xls");//获得文件
WritableWorkbook wb = Workbook.createWorkbook(f);//可以读写的workbook
WritableSheet s = wb.createSheet("第一页", 0);//workbook中的sheet,就是在excel下面那个sheet1,sheet2.这个方法表名使用第一个sheet并且命名为"第一页"
Label lable = null;//label就是某郑备一个小单元格
2层循环,给每个label
label = new Label(列,行,值);//都是从0开始的.就是给第几列地几行的labe里写东西
s.addCell(l);//把这个lable加入到sheet中
最后
wb.write();
wb.close();
读的也差不橘衫多.
你网络一下圆丛腔jxl,到处都是例子的哇
望采纳
② java代码如何将一个jtable表单中的数据导入到excel表中
将jtable的数据按行读入到ArrayList里面然后按照下面的方法处理
try {
Object[] Columns1 = {"会员编号", "姓名", "联系地址", "电话", "手机", "邮编", "总积分"};
//打开文件
WritableWorkbook book = Workbook.createWorkbook(new File("d:\\CustomerInfo.xls"));
//生成名为“第一页”的工作表,参数0表示这是第一页
WritableSheet sheet = book.createSheet("客户资料", 0);
sheet.addCell(new Label(0, 0, "会员编号"));
sheet.addCell(new Label(1, 0, "姓名"));
sheet.addCell(new Label(2, 0, "联系地址"));
sheet.addCell(new Label(3, 0, "电话"));
sheet.addCell(new Label(4, 0, "手机"));
sheet.addCell(new Label(5, 0, "邮编"));
sheet.addCell(new Label(6, 0, "会员总积分"));
for (int i = 0; i < list.size(); i++) {
Object[] obj = (Object[]) list.get(i);
for (int j = 0; j < Columns1.length; j++) {
if (j == 0) {
sheet.addCell(new Label(0, i + 1, obj[0].toString()));
} else if (j == 1) {
sheet.addCell(new Label(1, i + 1, obj[1].toString()));
} else if (j == 2) {
sheet.addCell(new Label(2, i + 1, obj[4].toString()));
} else if (j == 3) {
sheet.addCell(new Label(3, i + 1, obj[2].toString()));
} else if (j == 4) {
sheet.addCell(new Label(4, i + 1, obj[3].toString()));
} else if (j == 5) {
sheet.addCell(new Label(5, i + 1, obj[5].toString()));
} else if (j == 6) {
sheet.addCell(new Label(6, i + 1, obj[9].toString()));
}
}
}
/*生成一个保存数字的单元格
必须使用Number的完整包路径,否则有语法歧义
单元格位置是第二列,第一行,值为789.123*/
// jxl.write.Number numb = new jxl.write.Number(1, 0, 789.123);
// sheet.addCell(numb);
//写入数据并关闭文件
book.write();
book.close();
GV.MyMSG.myMsg(1, null, "会员资料已导出到文件d:\\CustomerInfo.xls中!~");
// ReleaseManager rm = new ReleaseManager();
// ExcelApplication excel = new ExcelApplication(rm);
// ExcelWorkbooks xlBooks = excel.Workbooks();
// ExcelWorkbook xlBook = xlBooks.Open(outputFile);
// ExcelWorksheet xlSheet = excel.ActiveSheet();
// xlSheet.PrintOut();
// xlBook.Close(false, outputFile, false);
// excel.Quit();
} catch (Exception e) {
System.out.println(e);
}
③ java jxl 大量数据写入excel,比如上千万条
考虑输出到多个excel文件吧
文件过大,很容易撑爆内存
另 jxl 仅仅对2003的支持较好,单个sheet只能写入65536个格子
④ 如何用Java导出数据存到excel里面
java中jxl导出数据到excel的例子
import jxl.*;
import jxl.write.*;
import java.io.*;
import java.io.File.*;
import java.util.*;
public class excel
{
public static void main(String[] args)
{
String targetfile = "c:/out.xls";//输出的excel文件名
String worksheet = "List";//输出的excel文件工作表名
String[] title = {"ID","NAME","DESCRIB"};//excel工作表的标题
WritableWorkbook workbook;
try
{
//创建可写入的工作薄,运行生成的文件在tomcat/bin下
//workbook = Workbook.createWorkbook(new File("output.xls"));
System.out.println("begin");
OutputStream os=new FileOutputStream(targetfile);
workbook=Workbook.createWorkbook(os);
WritableSheet sheet = workbook.createSheet(worksheet, 0); //添加第一个工作表
//WritableSheet sheet1 = workbook.createSheet("MySheet1", 1); //可添加第二个工作
/*
jxl.write.Label label = new jxl.write.Label(0, 2, "A label record"); //put a label in cell A3, Label(column,row)
sheet.addCell(label);
*/
jxl.write.Label label;
for (int i=0; i<title.length; i++)
{
//Label(列号,行号 ,内容 )
label = new jxl.write.Label(i, 0, title[i]); //put the title in row1
sheet.addCell(label);
}
//下列添加的对字体等的设置均调试通过,可作参考用
//添加数字
jxl.write.Number number = new jxl.write.Number(3, 4, 3.14159); //put the number 3.14159 in cell D5
sheet.addCell(number);
//添加带有字型Formatting的对象
jxl.write.WritableFont wf = new jxl.write.WritableFont(WritableFont.TIMES,10,WritableFont.BOLD,true);
jxl.write.WritableCellFormat wcfF = new jxl.write.WritableCellFormat(wf);
jxl.write.Label labelCF = new jxl.write.Label(4,4,"文本",wcfF);
sheet.addCell(labelCF);
//添加带有字体颜色,带背景颜色 Formatting的对象
jxl.write.WritableFont wfc = new jxl.write.WritableFont(WritableFont.ARIAL,10,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc);
wcfFC.setBackground(jxl.format.Colour.BLUE);
jxl.write.Label labelCFC = new jxl.write.Label(1,5,"带颜色",wcfFC);
sheet.addCell(labelCFC);
//添加带有formatting的Number对象
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
sheet.addCell(labelNF);
//3.添加Boolean对象
jxl.write.Boolean labelB = new jxl.write.Boolean(0,2,false);
sheet.addCell(labelB);
//4.添加DateTime对象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
sheet.addCell(labelDT);
//添加带有formatting的DateFormat对象
jxl.write.DateFormat df = new jxl.write.DateFormat("ddMMyyyyhh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(1,3,new java.util.Date(),wcfDF);
sheet.addCell(labelDTF);
//和宾单元格
//sheet.mergeCells(int col1,int row1,int col2,int row2);//左上角到右下角
sheet.mergeCells(4,5,8,10);//左上角到右下角
wfc = new jxl.write.WritableFont(WritableFont.ARIAL,40,WritableFont.BOLD,false,jxl.format.UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.GREEN);
jxl.write.WritableCellFormat wchB = new jxl.write.WritableCellFormat(wfc);
wchB.setAlignment(jxl.format.Alignment.CENTRE);
labelCFC = new jxl.write.Label(4,5,"单元合并",wchB);
sheet.addCell(labelCFC); //
//设置边框
jxl.write.WritableCellFormat wcsB = new jxl.write.WritableCellFormat();
wcsB.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THICK);
labelCFC = new jxl.write.Label(0,6,"边框设置",wcsB);
sheet.addCell(labelCFC);
workbook.write();
workbook.close();
}catch(Exception e)
{
e.printStackTrace();
}
System.out.println("end");
Runtime r=Runtime.getRuntime();
Process p=null;
//String cmd[]={"notepad","exec.java"};
String cmd[]={"C:\\Program Files\\Microsoft Office\\Office\\EXCEL.EXE","out.xls"};
try{
p=r.exec(cmd);
}
catch(Exception e){
System.out.println("error executing: "+cmd[0]);
}
}
}
⑤ 浅谈JAVA读写Excel的几种途径
读写Excel文件需要使用Excel类库,如Free Spire.XLS for Java.
读取Excel内容:
//创建Workbook对象
Workbookwb=newWorkbook();
//加载一个Excel文档
wb.loadFromFile("C:\Users\Administrator\Desktop\test.xlsx");
//获取第一个工作表
Worksheetsheet=wb.getWorksheets().get(0);
//遍历工作表的每一行
for(inti=1;i<sheet.getLastRow()+1;i++){
//遍历工作的每一列
for(intj=1;j<sheet.getLastColumn()+1;j++){
//输出指定单元格的数据
System.out.print(sheet.get(i,j).getText());
System.out.print(" ");
}
System.out.print(" ");
}
写入内容:
//创建Workbook对象
Workbookwb=newWorkbook();
//加载一个Excel文档
wb.loadFromFile("C:\Users\Administrator\Desktop\test.xlsx");
//获取第一个工作表
Worksheetsheet=wb.getWorksheets().get(0);
//在单元格A1写入新数据
sheet.getCellRange("A1").setText("你好");
//保存文档
wb.saveToFile("写入Excel.xlsx",ExcelVersion.Version2016);
⑥ java 将页面内容写入excel文件中并可以将其下载到本地任意位置
java本身袭要生成excel文件必然是在后台做的,通过poi库生成excel文件并制作表格。
无法直接通过网页保存生成excel。
至于下载到本地任意位置,也是后台生成了excel文件发送到前台(浏览器),由用户选择要存在哪儿,不能直接存储(这是web沙箱限制,不允许网页直接访问本地硬盘,不然你想想,如果你打开一个网页,网页代码可以任意访问你的硬盘,你还敢开网页吗)。
要绕过沙箱限制必须装插件,也就是,你必须开发一个com或plugin插件,可以访问本地硬盘,但这需要用户手工安装(比如flash的插件,你之所以能用网页看flash是因为装了它的插件,但这是你手工装的,它不能绕过你直接给你装,它必须询问你行不行,你要手工点了OK,才能装)
⑦ java中如何把数据导入到已有的Excel中,数据不覆盖
原来的数据不被覆盖这样的例子倒是没有做过。给你一个思路吧。
1、首先肯定要查到已有Excel的文件,根据路径或者名称查出。
2、读取Excel文件,因为要知道是否已经存在数据,没有数据的话那就直接导入。
3、如果有数据,HSSFSheet sheet,sheet.getPhysicalNumberOfRows(),可以拿到已经存在的行数,新导入的数据那就从这个基础上添加,不至于将原来的覆盖。
希望对你有所帮助。