java - 如何读取 Stringbuffer 中具有 html 表之类数据的 Read .xls 文件?

标签 java io jxl

我正在使用StringBuffer将数据写入xls文件(在StringBuffer中我使用HTML table代码),并且在尝试读取相同的xls文件时无法阅读,您能帮忙解决一下吗。使用 jxl-1.0 jar-- 注意:我可以使用我的代码读取正常的 xls 文件(但无法读取我生成的 xls 文件) 用于生成xls文件

package com.java;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    public class WriteXlsFile {
            public static void main(String[] args) throws IOException 
            {
                StringBuffer sbf = new StringBuffer();
                sbf.append("<table>");
                sbf.append("<tr>");
                sbf.append("<th>Firstname</th>");
                sbf.append("<th>Lastname</th>");
                sbf.append("<th>Age</th>");
                sbf.append("</tr>");
                sbf.append("<tr>");
                sbf.append("<td>Jill</td>");
                sbf.append("<td>Smith</td>");
                sbf.append("<td>50</td>");
                sbf.append("</tr>");
                sbf.append("<tr>");
                sbf.append("<td>Eve</td>");
                sbf.append("<td>Jackson</td>");
                sbf.append("<td>94</td>");
                sbf.append("</tr>");
                sbf.append("</table>");          
                BufferedWriter bwr = new BufferedWriter(new FileWriter(new File("d:/demo.xls")));
                bwr.write(sbf.toString());
                bwr.flush();
                bwr.close();
                System.out.println("Content of StringBuffer written to File.");
            }
    }

读取Xls文件

package com.java;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadXls {
    public static void main(String[] args) 
    {
        ReadXls reading = new ReadXls();
        String filePath = "D:/demo.xls";
        String sheetName = "demo";
        List al = null;
        al = reading.readExcelFile(filePath,sheetName);
        System.out.println("ReadXls.main()  al  ::: "+al);
    }
    public List readExcelFile(String filePath, String sheetName)  
    {
        FileInputStream fs = null;
        try {
            File f = new File(filePath);
            fs = new FileInputStream(f);
        } catch (FileNotFoundException e) 
        {
            e.printStackTrace();
        }
        Workbook wb = null;
        try {
            wb = Workbook.getWorkbook(fs);
        } catch (BiffException | IOException e) 
        {
            e.printStackTrace();
        }  
        Sheet sh = wb.getSheet(sheetName);
        int totalNoOfRows = sh.getRows();
        int totalNoOfCols = sh.getColumns();
        List finalData = new ArrayList();
        for (int row = 0; row < totalNoOfRows; row++) 
        {
            for (int col = 0; col < totalNoOfCols; col++) 
            {               
                String eachColCell = sh.getCell(col, row).getContents();            
                finalData.add(sh.getCell(col, row).getContents());          
            }
        }
        return finalData;
    }
}

最佳答案

你不能这么简单地做到这一点...XLS不是HTML,Excell程序有这个功能,但它不是那样的...它从 html 解析表格并将其转换为实际的 xls 工作表,您不能仅将常规 HTML 文件保存在 xls 扩展名下并将其打开为 XLS 文件 - 它不会神奇地转换。 您需要找到一些可以做到这一点的库,例如。 https://github.com/alanhay/html-exporter

关于java - 如何读取 Stringbuffer 中具有 html 表之类数据的 Read .xls 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45860182/

相关文章:

java - JXL - 多张纸上的垂直和水平卡住

java.lang.ArrayIndexOutOfBoundsException : Having difficulty working out where error occurs

java - 在 Java 中显示图像

java - Java并发通用文件下载

java - TCP 客户端-服务器程序的问题

java - 线程异常

multithreading - 将 IO::Async 与矢量化 STDIN 一起使用

java - JXL 重命名工作表

java - Cloud Endpoints 生成的代码中 @JSONString 注释的非法参数异常

java - 从 .NET 客户端使用 Java Web 服务