我正在尝试使用
将Excel(.xls,.xlsx)文件转换为CSV对于xlsx到CSV
对于xls到CSV
一切都很好,但我不希望Excel中的标题行写入CSV。 有人可以帮助我如何跳过Excel中的标题行吗?至少我怎样才能获得将回调事件发送给处理程序的行号?我对此有如此苛刻的帮助。
答案 0 :(得分:2)
经过这么多的挖掘后,我遇到了一个类XSSFSheetXMLHandler
,它按以下方式获取行号。所以我用它来知道行号。它是startElement方法的Attributes
参数的一部分。
else if("row".equals(name)) {
int rowNum = Integer.parseInt(attributes.getValue("r")) - 1; //This gets the row number. Then based on this value i Set a boolean variable part of the class member variable.
if(rowNum == 0) {
headerRow = true;
}
startRow(rowNum);
}
答案 1 :(得分:1)
工作方式是主类正在读取和解析电子表格,并使用“处理程序”类进行任何转换或输出:它是名为MyXSSFSheetHandler的内部类。
查看此类的endElement()方法。您将看到它将单元格值写入“output”,如果它是“row”元素的末尾,也会写入缺失值。
您可以向此内部类添加变量(例如“int myRowCount = 0”)。
然后,在endElement()期间,每次写入“output”时都会包装一个if语句
if (myRowCount > 0)
{
output.print... etc..
}
最后,在endElement里面,它检查“row”是否已经结束,增加行数。