我想从Excel文件中读取特定的列数据,并在具有附加数据的文本文件中搜索列的相关标题。我想使用Java poi将这些详细信息打印回另一个excel文件。 我的数据如下:
Excel:
Name Number
ABC 2345
XYZ 6789
文字档案:
Name|Class|School
ABC|1|bnm
XYZ|2|hjk
KOP|3|ert
我希望excel中的输出为:
Name Class School
ABC 1 bnm
XYZ 2 hjk
public static void main(String[] args) throws Exception {
String filename = System.getProperty("D:/Files/Input.xslx");
List sheetData = new ArrayList();
String columnWanted = "Name";
Integer columnNo = null;
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
Row firstRow = sheet.getRow(0);
for(Cell cell:firstRow){
if (cell.getStringCellValue().equals(columnWanted)){
columnNo = cell.getColumnIndex();
}
}
if (columnNo != null){
for (Row row : sheet) {
Cell c = row.getCell(columnNo);
if (c == null || c.getCellType() == Cell.CELL_TYPE_BLANK) {
// Nothing in the cell in this row, skip it
} else {
sheetData.add(c);
}
}System.out.println(sheetData);
}else{
System.out.println("could not find column ");
}
// Taking a new array list 'arr' for printing result data
List arr =new ArrayList();
File f=new File("D:/Files/Details.txt");
Scanner in=new Scanner(f);
System.out.println("Read Data From The Txt file ");
while(in.hasNext())
{
arr.add(in.nextLine());
}
System.out.println(arr);
}
catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
fis.close();
}
}
}
}
I want help in searching Names in text file taking input from Input.xslx
答案 0 :(得分:0)
我采取的一般方法是:
String[] textRow = in.nextLine().split("\\|");
sheetData.contains(textRow[0])
为真,则使用Poi创建三个新单元格。顺便说一下,我会在同一个工作簿中创建一个新工作表来编写新单元格。如果需要,可以稍后移动单元格。这意味着,在测试时,您可以在每次实验后删除新的工作表,并且您的“源”工作表将不会被修改。