В файле Excel, Как установить имя ячейки с помощью Java - PullRequest
0 голосов
/ 22 января 2019

У меня есть файл Excel. Я хочу установить уникальное имя для конкретной ячейки. Но нет метода с именем "cell.setName".

Ответы [ 2 ]

0 голосов
/ 22 января 2019

По официальной документации:

Именованный диапазон - это способ ссылки на группу ячеек по имени. Named Cell - это вырожденный случай Named Range, в котором «группа ячеек» содержит ровно одну ячейку. Вы можете создавать, а также ссылаться на ячейки в книге по их именованному диапазону. При работе с именованными диапазонами используются классы org.apache.poi.ss.util.CellReference и org.apache.poi.ss.util.AreaReference.

Примечание. Использование относительных значений, таких как «A1: B1», может привести к неожиданному перемещению ячейки, на которую указывает имя при работе с книгой в Microsoft Excel, обычно с использованием абсолютных ссылок, таких как «$ A $ 1: $ B $ 1». избегать этого, см. также это обсуждение.

Creating Named Range / Named Cell

    // setup code
    String sname = "TestSheet", cname = "TestName", cvalue = "TestVal";
    Workbook wb = new HSSFWorkbook();
    Sheet sheet = wb.createSheet(sname);
    sheet.createRow(0).createCell(0).setCellValue(cvalue);

    // 1. create named range for a single cell using areareference
    Name namedCell = wb.createName();
    namedCell.setNameName(cname + "1");
    String reference = sname+"!$A$1:$A$1"; // area reference
    namedCell.setRefersToFormula(reference);

    // 2. create named range for a single cell using cellreference
    Name namedCel2 = wb.createName();
    namedCel2.setNameName(cname + "2");
    reference = sname+"!$A$1"; // cell reference
    namedCel2.setRefersToFormula(reference);

    // 3. create named range for an area using AreaReference
    Name namedCel3 = wb.createName();
    namedCel3.setNameName(cname + "3");
    reference = sname+"!$A$1:$C$5"; // area reference
    namedCel3.setRefersToFormula(reference);

    // 4. create named formula
    Name namedCel4 = wb.createName();
    namedCel4.setNameName("my_sum");
    namedCel4.setRefersToFormula("SUM(" + sname + "!$I$2:$I$6)");

Ссылка: https://poi.apache.org/components/spreadsheet/quick-guide.html#NamedRanges

0 голосов
/ 22 января 2019
// setup code
String sname = "TestSheet", cname = "TestName", cvalue = "TestVal";
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet(sname);
sheet.createRow(0).createCell((short) 0).setCellValue(cvalue);

// 1. create named range for a single cell using areareference
Name namedCell = wb.createName();
namedCell.setNameName(cname);
String reference = sname+"!A1:A1"; // area reference
namedCell.setRefersToFormula(reference);

От: http://poi.apache.org/components/spreadsheet/quick-guide.html#NamedRanges

...