jxl想做一个通用的java文件,只需变化sql语句,导出的excel和sql语句查询结果像同 1.jxl想做一个通用的java文件,只需变化sql语句,导出的excel和sql语句查询结果像同 请问大侠怎么搞,一直想,我也没有想出所以然来另外2.为什么我的sheet.setRowView(0,1000);在导出的excel中第一行列高50不是1000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就写一个程序执行输入的sql语句然后把查询的结果输出到excel不久可以了?你可以分几步写1,先做一个执行sql的函数2,做结果输出到excel的函数3,1,2连接起来 这是我的一段代码,你可以写一个类,把查询结果组装成为数组,然后再有这个类来处理输出成文Excel。import java.io.OutputStream;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRichTextString;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class ExcelImportButton{ private static final long serialVersionUID = 1L; private String fileName; private Object[][] dataObjects; private String[] titles; public ExcelImportButton() { addActionListener(this); this.setText("导出Excel表格"); } public String getContentType() { return "xls"; } public String getFileName() { if (fileName == null) { SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); return format.format(new Date()) + ".xls"; } else return fileName; } public int getSize() { return 0; } /** * 第二根据数据量分sheet * cell.setCellValue(new HSSFRichTextString("我是单元格!")); 取代cell.setCellValue(""); */ public void writeFile(OutputStream out) { try{HSSFWorkbook workbook = new HSSFWorkbook(); if(titles==null||titles.length==0){ throw new NullPointerException("Excel-titles为空"); } if(dataObjects==null||dataObjects.length==0){ throw new NullPointerException("Excel-dataObjects为空"); } //将dataObjects封装到小的dataObject中,以number为单位,再分别装到每个sheet int number = 500;//每个sheet最多500条数据 ArrayList<Object[][]> aloss = new ArrayList<Object[][]>(); for(int q=0; q<dataObjects.length; q=q+number){ ArrayList<Object[]> v =new ArrayList<Object[]>(); for(int w=q;w<q+number;w++){ if(w >= dataObjects.length) break; v.add(dataObjects[w]); } if(v.size()>0){ Object temp [][]= new Object[v.size()][]; v.toArray(temp); aloss.add(temp); } } for(int e=0;e<aloss.size();e++){ Object[][] dataObject = aloss.get(e); HSSFSheet sheet = workbook.createSheet();//上面那个定义sheet名称的,条码打印机不识数据。 HSSFRow row = sheet.createRow(0); for (int i = 0; i < titles.length; i++) { HSSFCell cell = row.createCell((short) i); cell.setCellValue(new HSSFRichTextString(titles[i])); } if (dataObject != null) { for (int i = 0; i < dataObject.length; i++) { row = sheet.createRow(i + 1); Object[] line = dataObject[i]; if (line == null || line.length == 0) { continue; } for (int k = 0; k < line.length; k++) { HSSFCell cell = row.createCell((short) k); cell.setCellValue(new HSSFRichTextString(line[k] == null ? "暂未录入" : line[k] .toString())); } } }} workbook.write(out); out.flush(); }catch(Exception e){ e.printStackTrace(); } } public void setDataObjects(Object[][] dataObjects) { this.dataObjects = dataObjects; } public void setTitles(String[] titles) { this.titles = titles; } public void setFileName(String fileName) { this.fileName = fileName; }} 这个没有什么好想的吧:1.根据sql查询出数据;2、把查询出的数据输出到excel文件不知楼主哪一步想不通? 编程实现 abc*da=bcde ???? 在ASP中使用Java类出问题了? 在JAVA中怎么校验指定字符串是否为有效整数? JAVA采用覆盖方式写文件,文件日期改变,但内容没有改变,不知道是怎么回事 怎么判断一个字符是否为空字符? redhat linux9下怎么装j2sdk? 在线等!!!!如何判断鼠标移动时顺时针还是逆时针 。。。如何将Win下的.class移植到Linux下。。。 带格式的文本存成什么格式的文件呢? 那位大哥给我发份连接sql2000的jdbc驱动,高分! 【急】解析不规则excel JMF播放视频的分辨率问题
然后把查询的结果输出到excel不久可以了?你可以分几步写
1,先做一个执行sql的函数
2,做结果输出到excel的函数
3,1,2连接起来
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
public class ExcelImportButton{
private static final long serialVersionUID = 1L;
private String fileName;
private Object[][] dataObjects;
private String[] titles;
public ExcelImportButton() {
addActionListener(this);
this.setText("导出Excel表格");
}
public String getContentType() {
return "xls";
}
public String getFileName() {
if (fileName == null) {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
return format.format(new Date()) + ".xls";
} else
return fileName;
} public int getSize() {
return 0;
} /**
* 第二根据数据量分sheet
* cell.setCellValue(new HSSFRichTextString("我是单元格!")); 取代cell.setCellValue("");
*/
public void writeFile(OutputStream out) {
try{HSSFWorkbook workbook = new HSSFWorkbook();
if(titles==null||titles.length==0){
throw new NullPointerException("Excel-titles为空");
}
if(dataObjects==null||dataObjects.length==0){
throw new NullPointerException("Excel-dataObjects为空");
}
//将dataObjects封装到小的dataObject中,以number为单位,再分别装到每个sheet
int number = 500;//每个sheet最多500条数据
ArrayList<Object[][]> aloss = new ArrayList<Object[][]>();
for(int q=0; q<dataObjects.length; q=q+number){
ArrayList<Object[]> v =new ArrayList<Object[]>();
for(int w=q;w<q+number;w++){
if(w >= dataObjects.length)
break;
v.add(dataObjects[w]);
}
if(v.size()>0){
Object temp [][]= new Object[v.size()][];
v.toArray(temp);
aloss.add(temp);
}
}
for(int e=0;e<aloss.size();e++){
Object[][] dataObject = aloss.get(e);
HSSFSheet sheet = workbook.createSheet();//上面那个定义sheet名称的,条码打印机不识数据。
HSSFRow row = sheet.createRow(0);
for (int i = 0; i < titles.length; i++) {
HSSFCell cell = row.createCell((short) i);
cell.setCellValue(new HSSFRichTextString(titles[i]));
}
if (dataObject != null) {
for (int i = 0; i < dataObject.length; i++) {
row = sheet.createRow(i + 1);
Object[] line = dataObject[i];
if (line == null || line.length == 0) {
continue;
}
for (int k = 0; k < line.length; k++) {
HSSFCell cell = row.createCell((short) k);
cell.setCellValue(new HSSFRichTextString(line[k] == null ? "暂未录入" : line[k]
.toString()));
}
}
}}
workbook.write(out);
out.flush();
}catch(Exception e){
e.printStackTrace();
}
}
public void setDataObjects(Object[][] dataObjects) {
this.dataObjects = dataObjects;
} public void setTitles(String[] titles) {
this.titles = titles;
} public void setFileName(String fileName) {
this.fileName = fileName;
}
}
1.根据sql查询出数据;
2、把查询出的数据输出到excel文件不知楼主哪一步想不通?