iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java如何写入写出Excel
  • 626
分享到

Java如何写入写出Excel

javaexcel 2023-05-30 17:05:41 626人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关Java如何写入写出excel,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据原来是这样的,不同的实验有一个专门的文件夹,实验名的文件夹下有不同班级的文件夹,班级文件夹下有该

这篇文章将为大家详细讲解有关Java如何写入写出excel,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

数据原来是这样的,不同的实验有一个专门的文件夹,实验名的文件夹下有不同班级的文件夹,班级文件夹下有该班级日期文件夹,存储的是不同时间下该班做实验的数据EXCEL,原来的EXCEL中没有班级和时间,现在需要通过读取EXCEL名以及班级名来将该信息作为一列,加入到EXCEL中。

类ExcelRead:

import java.awt.List;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.text.DecimalFORMat;import java.text.SimpleDateFormat;import java.util.ArrayList;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFDateUtil;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.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;public class ExcelRead {String path;public String getPath() {return path;}public void setPath(String path) {this.path = path;}//默认单元格内容为数字时格式 private static DecimalFormat df = new DecimalFormat("0");// 默认单元格格式化日期字符串  private static SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");// 格式化数字 private static DecimalFormat nf = new DecimalFormat("0.00");public static ArrayList<ArrayList<Object>> readExcel(File file){if(file == null){return null;}if(file.getName().endsWith("xlsx")){//处理ecxel2007 return readExcel2007(file);} else{//处理ecxel2003 return readExcel2003(file);}}public static ArrayList<ArrayList<Object>> readExcel2003(File file){try{ArrayList<ArrayList<Object>> rowList = new ArrayList<ArrayList<Object>>();ArrayList<Object> colList;HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));HSSFSheet sheet = wb.getSheetAt(0);HSSFRow row;HSSFCell cell;Object value;for (int i = sheet.getFirstRowNum() , rowCount = 0; rowCount < sheet.getPhysicalNumberOfRows() ; i++ ){row = sheet.getRow(i);colList = new ArrayList<Object>();if(row == null){//当读取行为空时 if(i != sheet.getPhysicalNumberOfRows()){//判断是否是最后一行 rowList.add(colList);}continue;} else{rowCount++;}for ( int j = row.getFirstCellNum() ; j <= row.getLastCellNum() ;j++){cell = row.getCell(j);if(cell == null || cell.getCellType() == HSSFCell.CELL_TYPE_BLANK){//当该单元格为空 if(j != row.getLastCellNum()){//判断是否是该行中最后一个单元格 colList.add("");}continue;}switch(cell.getCellType()){case XSSFCell.CELL_TYPE_STRING:              //System.out.println(i + "行" + j + " 列 is String type");  value = cell.getStrinGCellValue();break;case XSSFCell.CELL_TYPE_NUMERIC:              if ("@".equals(cell.getCellStyle().getDataFormatString())) {value = df.format(cell.getNumericCellValue());} else if ("General".equals(cell.getCellStyle()                  .getDataFormatString())) {value = nf.format(cell.getNumericCellValue());} else {value = sdf.format(HSSFDateUtil.getJavaDate(cell                    .getNumericCellValue()));}//                System.out.println(i + "行" + j  //                    + " 列 is Number type ; DateFormt:"  //                    + value.toString());  break;case XSSFCell.CELL_TYPE_BOOLEAN:              //System.out.println(i + "行" + j + " 列 is Boolean type");  value = Boolean.valueOf(cell.getBooleanCellValue());break;case XSSFCell.CELL_TYPE_BLANK:              //System.out.println(i + "行" + j + " 列 is Blank type");  value = "";break;default:              //System.out.println(i + "行" + j + " 列 is default type");  value = cell.toString();}// end switch colList.add(value);}//end for j rowList.add(colList);}//end for i return rowList;}catch(Exception e){return null;}}public static ArrayList<ArrayList<Object>> readExcel2007(File file){try{ArrayList<ArrayList<Object>> rowList = new ArrayList<ArrayList<Object>>();ArrayList<Object> colList;XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(file));XSSFSheet sheet = wb.getSheetAt(0);XSSFRow row;XSSFCell cell;Object value;for (int i = sheet.getFirstRowNum() , rowCount = 0; rowCount < sheet.getPhysicalNumberOfRows() ; i++ ){row = sheet.getRow(i);colList = new ArrayList<Object>();if(row == null){//当读取行为空时 if(i != sheet.getPhysicalNumberOfRows()){//判断是否是最后一行 rowList.add(colList);}continue;} else{rowCount++;}for ( int j = row.getFirstCellNum() ; j <= row.getLastCellNum() ;j++){cell = row.getCell(j);if(cell == null || cell.getCellType() == HSSFCell.CELL_TYPE_BLANK){//当该单元格为空 if(j != row.getLastCellNum()){//判断是否是该行中最后一个单元格 colList.add("");}continue;}switch(cell.getCellType()){case XSSFCell.CELL_TYPE_STRING:              //System.out.println(i + "行" + j + " 列 is String type");  value = cell.getStringCellValue();break;case XSSFCell.CELL_TYPE_NUMERIC:              if ("@".equals(cell.getCellStyle().getDataFormatString())) {value = df.format(cell.getNumericCellValue());} else if ("General".equals(cell.getCellStyle()                  .getDataFormatString())) {value = nf.format(cell.getNumericCellValue());} else {value = sdf.format(HSSFDateUtil.getJavaDate(cell                    .getNumericCellValue()));}//                System.out.println(i + "行" + j  //                    + " 列 is Number type ; DateFormt:"  //                    + value.toString());  break;case XSSFCell.CELL_TYPE_BOOLEAN:              //System.out.println(i + "行" + j + " 列 is Boolean type");  value = Boolean.valueOf(cell.getBooleanCellValue());break;case XSSFCell.CELL_TYPE_BLANK:              //System.out.println(i + "行" + j + " 列 is Blank type");  value = "";break;default:              //System.out.println(i + "行" + j + " 列 is default type");  value = cell.toString();}// end switch colList.add(value);}//end for j rowList.add(colList);}//end for i return rowList;}catch(Exception e){System.out.println("exception");return null;}}public static ArrayList getFiles(String filePath){File root = new File(filePath);File[]files = root.listFiles();ArrayList filelist = new ArrayList();for (File file:files){if(file.isDirectory()){filelist.addAll(getFiles(file.getAbsolutePath()));} else{String newpath = file.getAbsolutePath();if(newpath.contains("交易记录")){filelist.add(newpath);}}}return filelist;}public void readBook(String path4) {String filePath = path4;ArrayList filelist = getFiles(filePath);ArrayList<ArrayList>resultAll = new ArrayList<ArrayList>();for (int i = 0;i<filelist.size();i++){String path = (String) filelist.get(i);System.out.println(path);ArrayList<ArrayList>result = Graph(path);String[] path3 = path.split("\\\\");int num = result.get(0).size();ArrayList result2 = new ArrayList();for (int j = 0;j<num;j++){result2.add(path3[path3.length-2]);}ArrayList result3 = new ArrayList();for (int j = 0;j<num;j++){result3.add(path3[path3.length-3]);}result.add(result2);result.add(result3);if(resultAll.size()==0){resultAll = result;} else{for (int j = 0;j<result.size();j++){for (int k = 0;k<result.get(j).size();k++){resultAll.get(j).add(result.get(j).get(k));}}}}writeExcel(resultAll,"D:/a.xls");}public static void writeExcel(ArrayList<ArrayList> result,String path){if(result == null){return;}HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("sheet1");for (int i = 0 ;i < result.get(0).size() ; i++){HSSFRow row = sheet.createRow(i);for (int j = 0; j < result.size() ; j ++){HSSFCell cell = row.createCell((short)j);cell.setCellValue(result.get(j).get(i).toString());}}ByteArrayOutputStream os = new ByteArrayOutputStream();try     {wb.write(os);}catch (IOException e){e.printStackTrace();}byte[] content = os.toByteArray();File file = new File(path);//Excel文件生成后存储的位置。 OutputStream fos = null;try     {fos = new FileOutputStream(file);wb.write(fos);os.close();fos.close();}catch (Exception e){e.printStackTrace();}}public static DecimalFormat getDf() {return df;}public static void setDf(DecimalFormat df) {ExcelRead.df = df;}public static SimpleDateFormat getSdf() {return sdf;}public static void setSdf(SimpleDateFormat sdf) {ExcelRead.sdf = sdf;}public static DecimalFormat getNf() {return nf;}public static void setNf(DecimalFormat nf) {ExcelRead.nf = nf;}public static ArrayList<ArrayList> Graph(String path){File file = new File(path);ArrayList<ArrayList<Object>> result = ExcelRead.readExcel(file);ArrayList<double>price = new ArrayList<double>();//价格序列ArrayList<String>time = new ArrayList<String>();//时间序列ArrayList<String>buyList = new ArrayList<String>();//买方序列ArrayList<String>sellList = new ArrayList<String>();//卖方序列ArrayList<double>vol = new ArrayList<double>();//成交量ArrayList<String>Share = new ArrayList<String>();//股票名字ArrayList<String>id = new ArrayList<String>();ArrayList<String>Shareid = new ArrayList<String>();for (int i = 2 ;i < result.size() ;i++){for (int j = 0;j<result.get(i).size(); j++){//第5列表示价格,第8列表示时间if(j==0){String temp = (String) result.get(i).get(j);id.add(temp);}if(j==3){String temp = (String) result.get(i).get(j);Shareid.add(temp);}if(j==5){//price.add((String) result.get(i).get(j));String temp = (String) result.get(i).get(j);String[] units = temp.split("¥");price.add(double.valueOf(units[1]));}if(j==7){String temp = (String) result.get(i).get(j);time.add(temp);//         time.add((String) result.get(i).get(j));}if(j==1){buyList.add((String) result.get(i).get(j));}if(j==2){sellList.add((String) result.get(i).get(j));}if(j==6){vol.add(double.valueOf((String)result.get(i).get(j)));}if(j==4){Share.add((String)result.get(i).get(j));}}}ArrayList<ArrayList>resultList = new ArrayList<ArrayList>();resultList.add(Shareid);resultList.add(id);resultList.add(buyList);resultList.add(sellList);resultList.add(Share);resultList.add(price);resultList.add(vol);resultList.add(time);return resultList;}}

readExcelBook(做可视化窗口的):

import java.awt.EventQueue;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.GroupLayout;import javax.swing.JLabel;import javax.swing.GroupLayout.Alignment;import javax.swing.JButton;import javax.swing.JTextField;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.io.File;public class readExcelBook {private JFrame frame;private JTextField textField;public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {readExcelBook window = new readExcelBook();window.frame.setVisible(true);}catch (Exception e) {e.printStackTrace();}}});}public readExcelBook() {initialize();}private void initialize() {frame = new JFrame();frame.setBounds(100, 100, 450, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton button = new JButton("\u9009\u62E9\u6587\u4EF6");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {JFileChooser jfc=new JFileChooser();jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );jfc.showDialog(new JLabel(), "选择");File file=jfc.getSelectedFile();String path = file.getAbsolutePath();textField.setText(path);ExcelRead er = new ExcelRead();er.readBook(path);}});textField = new JTextField();textField.setColumns(10);JLabel lbldaxls = new JLabel("\u5199\u5165\u4E86D\u76D8\u4E0B\u7684a.xls\u54C8");GroupLayout groupLayout = new GroupLayout(frame.getContentPane());groupLayout.setHorizontalGroup(      groupLayout.createParallelGroup(Alignment.LEADING)        .addGroup(groupLayout.createSequentialGroup()          .addGap(26)          .addGroup(groupLayout.createParallelGroup(Alignment.LEADING)            .addComponent(lbldaxls)            .addComponent(textField, GroupLayout.PREFERRED_SIZE, 295, GroupLayout.PREFERRED_SIZE)            .addComponent(button))          .addContainerGap(113, short.MAX_VALUE))    );groupLayout.setVerticalGroup(      groupLayout.createParallelGroup(Alignment.LEADING)        .addGroup(groupLayout.createSequentialGroup()          .addGap(31)          .addComponent(button)          .addGap(18)          .addComponent(textField, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)          .addGap(35)          .addComponent(lbldaxls)          .addContainerGap(119, short.MAX_VALUE))    );frame.getContentPane().setLayout(groupLayout);}}

运行结果:

Java如何写入写出Excel

关于“Java如何写入写出Excel”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Java如何写入写出Excel

本文链接: https://www.lsjlt.com/news/220128.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java如何写入写出Excel
    这篇文章将为大家详细讲解有关Java如何写入写出Excel,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据原来是这样的,不同的实验有一个专门的文件夹,实验名的文件夹下有不同班级的文件夹,班级文件夹下有该...
    99+
    2023-05-30
    java excel
  • Python如何写入excel表格
    这篇“Python如何写入excel表格”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何写入excel表格”文...
    99+
    2023-06-27
  • Python3.5 写入excel
    Python3.5 写入excel望共同进步这里需要安装xlwt模块,具体步骤请看我的博客Python3.5读取excel(http://blog.csdn.net/weixin_39701039/article/details/7949...
    99+
    2023-01-31
    excel
  • JAVA读写excel
    使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事。在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或S...
    99+
    2023-06-03
  • 如何使用Jscript编写EXCEL导出
    这篇文章主要介绍了如何使用Jscript编写EXCEL导出,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。function exportexcel(){   &nbs...
    99+
    2023-06-03
  • Python如何实现数据写入Excel
    这篇文章主要讲解了“Python如何实现数据写入Excel”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何实现数据写入Excel”吧!写入后的格式如下图所示:以下为数据用例:i...
    99+
    2023-06-15
  • 如何解决写入 CSV 时出现“短写入”错误
    今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何解决写入 CSV 时出现“短写入”错误》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,...
    99+
    2024-04-04
  • Python 如何写入Excel格式和颜色
    Python写入Excel有时需要合并单元格、或者改变文字内容的颜色 首先导入xlwt模块 import xlwt 创建文件名 创建Excel工作簿对象 创建工作表 创建样式字...
    99+
    2024-04-02
  • Python如何读取和写入Excel数据
    这篇文章主要介绍“Python如何读取和写入Excel数据”,在日常操作中,相信很多人在Python如何读取和写入Excel数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何读取和写入Exce...
    99+
    2023-06-02
  • 如何使用Python给Excel写入数据
    openpyxl三步走 获取work book 获取 work sheet 再然后 获取单元格 进行操作 保存文件 安装OpenpyXl pip install OpenpyXl 导包方式以下两种都可以 from openpyxl i...
    99+
    2023-10-12
    excel python 信息可视化 数据分析 powerpoint
  • Java利用EasyExcel读取写入Excel详情
    目录EasyExcel介绍为什么使用EasyExcel?封装使用例子EasyExcel介绍 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具...
    99+
    2024-04-02
  • python查询MySQL写入Excel
     现有一个用户表,需要将表数据写入到excel中。环境说明mysql版本:5.7端口:3306数据库:test表名:users 表结构如下:CREATE TABLE `users` ( &n...
    99+
    2023-01-31
    python MySQL Excel
  • 如何使用matplotlib画图直接写入excel
    小编给大家分享一下如何使用matplotlib画图直接写入excel,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用 matpyplot.lib  生成...
    99+
    2023-06-02
  • python如何操作excel,在excel中读取和写入数据
    Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为...
    99+
    2023-10-07
    python excel 开发语言
  • java中如何写出一个api
    要编写一个Java API,你需要按照以下步骤进行操作:1. 设计API:首先,你需要明确定义你的API的功能和目标。确定你的API...
    99+
    2023-10-18
    java
  • C#怎么写入Excel操作
    这篇文章主要介绍“C#怎么写入Excel操作”,在日常操作中,相信很多人在C#怎么写入Excel操作问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么写入Excel操作”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-18
  • python3 写入excel表格数据
    import xlwt #导入xlwt 库 book = xlwt.Workbook(encoding=‘utf-8’) #创建工作簿 sheet = book.add_sheet(‘sheet1’) ...
    99+
    2023-01-31
    表格 数据 excel
  • Python如何读写Excel表格
    这篇文章主要介绍Python如何读写Excel表格,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下python读取Excel表格:import xlrd  def r...
    99+
    2023-06-06
  • java如何使用EasyExcel导入导出excel
    这篇文章主要介绍了java如何使用EasyExcel导入导出excel,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、准备工作1、导包<!-- poi&nb...
    99+
    2023-06-15
  • pandas写入excel有哪些方法
    pandas写入excel的方法有:1、安装所需的库;2、读取数据集;3、写入Excel文件;4、指定工作表名称;5、格式化输出;6、自定义样式。Pandas是一个流行的Python数据分析库,提供了许多强大的数据清洗和分析功能,要将Pan...
    99+
    2023-11-22
    Pandas Excel
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作