我想知道如何将Java类读取的数据转换为允许我在Excel中读取文档的数据.xls
,.xlsx
并.xlsm
通过库POI
转换为结构XML
,值得一提的是,该类读取文件并在控制台中向我显示结果.
现在,我如何从这些数据生成 XML 结构?我需要一个特定的库还是我能做什么?
我附上了从 Excel 读取数据的代码:
public class ExcelReader{
public void displayFromExcel() throws FileNotFoundException, IOException, EncryptedDocumentException, InvalidFormatException
{
File archivoExcel = new File("C:\\Users\\1\\Desktop\\archivo.xlsx"); //ruta del archivo xls o xlsx
Workbook libroExcel = WorkbookFactory.create(new FileInputStream(archivoExcel)); //crear un libro excel
Sheet hojaActual = libroExcel.getSheetAt(0); //acceder a la primera hoja
Row filaActual = hojaActual.getRow(0); //acceder a la primera fila en la hoja
Cell celdaActual = filaActual.getCell(0); //acceder a la primera celda en la fila
Iterator<Row> rows = hojaActual.rowIterator();
while (rows.hasNext())
{
Row row = (Row) rows.next();
int rowNumber = row.getRowNum();
// muestra el número de fila
System.out.println ("No. Fila: " + rowNumber);
filaActual= rows.next();
Iterator<Cell> cells = filaActual.cellIterator();
while (cells.hasNext())
{
celdaActual= cells.next();
cells.remove();
if (celdaActual.getCellType() == Cell.CELL_TYPE_STRING)
{
System.out.println("String: "+celdaActual.getStringCellValue()+" ");
}
else if(celdaActual.getCellType() == Cell.CELL_TYPE_NUMERIC)
{
System.out.println("Int: "+celdaActual.getNumericCellValue()+" ");
}
else
{
//U Can Handel Boolean, Formula, Errors
}
}
System.out.println();
}
}
public static void main (String[] args) throws EncryptedDocumentException, FileNotFoundException, InvalidFormatException, IOException
{
MyExp exp = new MyExp();
exp.displayFromExcel();
}
}
永远记住,在编程(以及一般的软件世界)中,问题可以使用分而治之来简化。因此,您的问题可以分为以下几个部分(如果将其视为一个点问题,则每个部分都更容易):
看来您应该只继续第 2 部分和第 3 部分。由于我们不知道您的 Excel 文件中的数据是什么样的或您希望它的结构如何,因此第 2 部分将取决于您的需要。对于第 3 部分,您可以使用 Java 原生的 JAXB 或一些外部库。就个人而言,我推荐使用XStream (
StaxDriver
免责声明1:我与 XStream 项目或开发团队没有任何关系,我只是产品及其结果的快乐用户)。1 法律声明似乎是免责声明的良好西班牙语翻译