问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

怎么使用数据库筛选js文件的数据并导出到excel?

提问网友 发布时间:2022-04-20 11:29
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
5个回答
热心网友 回答时间:2023-10-06 10:51
--------------------------------------------------------
我建议你还是通过后台来处理,用JS的话,客户端压力太大,容易导致内存溢出,浏览器崩溃。

我用Java语言,通过jxl以及poi两种API给你写了例子,分别是用jxl读写excel文件,用poi读写excel文件。希望对你有帮助。(需要下载jxl和poi的jar包)

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.format.Colour;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

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;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;

public class ExcelUtil {

/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
String outFile = "D:/workspace/JavaStudy/src/util/excel/test.xls";
ExcelUtil.writeExcelByJXL(outFile, null);
}

/**
*
* @title: readExcelByJXL
* @description: 通过jxl读取excel文件
* @author yu ren tian
* @email yurentian@163.com
* @param excelFile
* @return
* @throws IOException
*/
private static List readExcelByJXL(String excelFile) throws IOException {
List rtn = new ArrayList();
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(excelFile);
Workbook excelWorkBook = Workbook.getWorkbook(fileInputStream);
Sheet sheet = excelWorkBook.getSheet(0);
int m = sheet.getRows();
int n = sheet.getColumns();
for (int i = 1; i < m; i++) {
Map map = new HashMap();
for (int j = 0; j < n; j++) {
Cell cell = sheet.getCell(j, i);
String cellContent = cell.getContents();
switch (j) {
case 0:
map.put("studentName", cellContent);
break;
case 1:
map.put("Chinese", cellContent);
break;
case 2:
map.put("Math", cellContent);
break;
case 3:
map.put("English", cellContent);
break;
case 4:
map.put("assess", cellContent);
break;
}
}
rtn.add(map);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fileInputStream) {
fileInputStream.close();
}
return rtn;
}
}

/**
*
* @title: writeExcelByJXL
* @description: 通过jxl写入excel文件
* @author yu ren tian
* @email yurentian@163.com
* @param outFile
* @param list
* @throws IOException
*/
private static void writeExcelByJXL(String outFile, List list)
throws IOException {
WritableWorkbook wwb;
FileOutputStream fos;
try {
fos = new FileOutputStream(outFile);
// wwb = Workbook.createWorkbook(file);
wwb = Workbook.createWorkbook(fos);
WritableSheet sheet = wwb.createSheet("test", 0);
// 设置单元格的文字格式
WritableFont wf = new WritableFont(WritableFont.ARIAL, 12,
WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE,
Colour.BLUE);
WritableCellFormat wcf = new WritableCellFormat(wf);
//wcf.setBackground(Colour.GREEN);
wcf.setBackground(new CustomColor(11, "", 0, 0, 0));
for (int i = 0; i < 10; i++) {
Label label = new Label(i, 0, i + "", wcf);
sheet.addCell(label);
}

wwb.write();
wwb.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

/**
*
* @title: readExcelByPOI
* @description: 通过poi读取excel文件
* @author yu ren tian
* @email yurentian@163.com
* @param excelFile
* @return
* @throws IOException
*/
private static List readExcelByPOI(String excelFile) throws IOException {
List rtn = new ArrayList();
FileInputStream fin = null;
try {
fin = new FileInputStream(excelFile);
POIFSFileSystem fs = new POIFSFileSystem(fin);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
int m = sheet.getLastRowNum() - sheet.getFirstRowNum() + 1;
int n = 5;
for (int i = 1; i < m; i++) {
Map map = new HashMap();
for (int j = 0; j < n; j++) {
HSSFCell cell = sheet.getRow(i).getCell((short) j);
int type = cell.getCellType();
String cellContentString = null;
double cellContentDouble = 0;
if (type == 1) {
cellContentString = cell.getRichStringCellValue()
.getString();
System.out.println("cellContentString="
+ cellContentString);
} else if (type == 0) {
cellContentDouble = cell.getNumericCellValue();
System.out.println("cellContentDouble="
+ cellContentDouble);
}
System.out.println("j=" + j);
switch (j) {
case 0:
map.put("studentName", cellContentString);
break;
case 1:
map.put("Chinese", new Double(cellContentDouble));
break;
case 2:
map.put("Math", new Double(cellContentDouble));
break;
case 3:
map.put("English", new Double(cellContentDouble));
break;
case 4:
map.put("assess", cellContentString);
break;
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fin != null) {
fin.close();
}
return rtn;
}
}

/**
*
* @title: writeExcelByPOI
* @description: 通过poi写入excel
* @author yu ren tian
* @email yurentian@163.com
* @param outFile
* @param list
* @throws IOException
*/
private static void writeExcelByPOI(String outFile, List list)
throws IOException {
FileOutputStream fos = new FileOutputStream(outFile);
HSSFWorkbook wb = new HSSFWorkbook();
for (int sheetCount = 0; sheetCount < 5; sheetCount++) {
HSSFSheet sheet = wb.createSheet("组织" + (sheetCount + 1));
for (int rowCount = 0; rowCount < 10; rowCount++) {
for (int columnCount = 0; columnCount < 10; columnCount++) {
HSSFRow row = sheet.createRow(rowCount);
HSSFCell cell = row.createCell(new Short(columnCount + ""));
HSSFRichTextString richTextString = new HSSFRichTextString(
"行=" + rowCount + " 列=" + columnCount);
cell.setCellValue(richTextString);
}
}
}
wb.write(fos);
}
}

--------------------------------------------------------
热心网友 回答时间:2023-10-06 10:52
单纯靠js是不行的,还要借助高级语言,比如,.net,java,c#,php等。靠js触发事件,靠高级语言操作数据库表,再利用组件读写excel文件。即可完成。例子就不说了。

比如java:
页面上靠js触发事件调用java 的jdbc 访问数据库表,然后利用获取的数据和组件(比如:jxl,poi等) 组装成excel文件。供用户下载。
ok。
热心网友 回答时间:2023-10-06 10:52
建议你可以加个复选框 是否生成excel表格 .默认不选中,选中的话 在你生成excel表格的时候 进行判断一下你复选框的值即可. 选中就执行生成的代码 不选中就跳过 加个判断即可
热心网友 回答时间:2023-10-06 10:53
new ActiveXObject("Excel.Application");
热心网友 回答时间:2023-10-06 10:54
exce中有一项数据链接

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

诡异的乱码问题 jsp导出excel乱码 用kettle把JS转换成Excel表格中文乱码的问题 使用JS的方法将表格导出EXCEL时发生了“800A025E”的... 如何删除顽固文件之流氓软件 如何删除顽固软件 如何卸载应用软件? 怎样卸载些顽固软件想卸载软件,可是总是提示:访问被 怎么卸载电脑上的顽固软件 顽固软件无法卸载? 如何彻底卸载你不想用的软件 好几种方法 如何卸载掉电脑上的难以清除的顽固软件? 香蕉悦读和手机模拟大师卸载时进度条不动 阅读怎么卸载阅读怎么卸载不掉 如何卸载手机中的顽固软件 怎么手动卸载顽固软件 怎样删除顽固软件? 香蕉悦读怎么卸载那么久 有联通卡用小米平板4实现电话功能的吗 电脑香蕉悦读怎么卸载删 导出excel 乱码 怎么解决 使用JS的方法将表格导出EXCEL时发生了800A025E的错... jsp 导出html excel 中文乱码怎么解决 系统导出excel表格中文乱码怎么办 同页面查询不同数据导出Excel,有的EXCEL中文乱码 phpexcel导出excel文件乱码,如何解决??? java 导出 Excel 中文乱码 在一些网站导出EXCEL时总导出些乱码文件,打不开,怎... 网页数据点击导出到excel文件没问题,导出完以后网... asp导出excel出现中文乱码 在系统导出EXCEL数据出现乱码 导出excel表格和word表格中文出现乱码 关于jsp用js导出Excel的问题 POI导出excel表时文件名变成乱码怎么办 android手机cisco anyconnect怎么使用 小米3怎么才能安装使用cisco anyconnect,求关注 cisco anyconnect怎么使用 小米的系统是不是不支持Cisco Anyconnect iphone手机cisco Anyconnect 所尝试的链接已超时 ciscoanyconnect会对本地电脑安全隐患吗
Top