Главное Авторские колонки Вакансии Вопросы
Выбор редакции:
343 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Как вставить или прочитать формулы и функции в Excel на Java

В этой статье мы расскажем, как вставлять или читать формулы и функции в рабочих книгах Excel с помощью Free Spire.XLS for Java.
Мнение автора может не совпадать с мнением редакции

Помимо записи данных, в Excel есть функции вычислений, которые делают анализ и обработку данных эффективными и простыми. В Excel есть два инструмента вычислений — формулы и функции. Формулы — это заданные пользователем формулы вычислений, а функции - предопределенные формулы. Пользователи могут либо вводить собственные формулы в ячейки, либо просто вызывать функции для вычислений. В этой статье мы расскажем, как вставлять или читать формулы и функции в рабочих книгах Excel с помощью Free Spire.XLS for Java.

  • Вставка формул и функций в рабочий лист Excel на Java
  • Чтение формул и функций из рабочего листа Excel на Java

Установка файла Free Spire.Xls.jar

Если вы создали Maven-проект, вы можете легко импортировать jar в свое приложение, используя следующие конфигурации. Для проектов, не использующих Maven, загрузите jar-файл по этой ссылке и добавьте его в качестве зависимости в свое приложение.


Вставка формул и функций в рабочий лист Excel на Java

Spire.XLS for Java предоставляет метод Worksheet.getCellRange().setFormula() для добавления формулы или функции в определенную ячейку. В следующем фрагменте кода приведен пример.

import com.spire.xls.*;

public class insertFormulas {

public static void main(String[] args) {

//Create an object of Workbook

Workbook workbook = new Workbook();

//Get the first worksheet

Worksheet sheet = workbook.getWorksheets().get(0);

//Declare two variables: currentRow、currentFormula

int currentRow = 1;

String currentFormula = null;

//Set the column width

sheet.setColumnWidth(1, 32);

sheet.setColumnWidth(2, 16);

//Write data in cells

sheet.getCellRange(currentRow,1).setValue("Test data:");

sheet.getCellRange(currentRow,2).setNumberValue(1);

sheet.getCellRange(currentRow,3).setNumberValue(2);

sheet.getCellRange(currentRow,4).setNumberValue(3);

sheet.getCellRange(currentRow,5).setNumberValue(4);

sheet.getCellRange(currentRow,6).setNumberValue(5);

//Write text in cells

currentRow += 2;

sheet.getCellRange(currentRow,1).setValue("Formulas") ; ;

sheet.getCellRange(currentRow,2).setValue("result");

//Format cells

CellRange range = sheet.getCellRange(currentRow,1,currentRow,2);

range.getStyle().getFont().isBold(true);

range.getStyle().setKnownColor(ExcelColors.LightGreen1);

range.getStyle().setFillPattern(ExcelPatternType.Solid);

range.getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Medium);

//Arithmetic operation

currentFormula = «=1/2+3*4»;

sheet.getCellRange(++currentRow,1).setText("’"+ currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Date function

currentFormula = «=TODAY()»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("YYYY/MM/DD");

//Time function

currentFormula = «=NOW()»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

sheet.getCellRange(currentRow,2).getStyle().setNumberFormat("H:MM AM/PM");

//IF function

currentFormula = "=IF(B1=5,"Yes","No")";

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//PI function

currentFormula = «=PI()»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Trigonometric function

currentFormula = «=SIN(PI()/6)»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Count function

currentFormula = «=Count(B1:F1)»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Maximum function

currentFormula = «=MAX(B1:F1)»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Average function

currentFormula = «=AVERAGE(B1:F1)»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Summation function

currentFormula = «=SUM(B1:F1)»;

sheet.getCellRange(++currentRow,1).setText("’"+currentFormula);

sheet.getCellRange(currentRow,2).setFormula(currentFormula);

//Save the Workbook

workbook.saveToFile("InsertFormulas.xlsx",FileFormat.Version2013);

}

}

Чтение формул и функций из рабочего листа Excel на Java

Чтобы прочитать формулы в рабочих листах Excel, мы можем использовать метод CellRange.hasFormula(), чтобы определить, содержит ли ячейка формулу, а затем использовать метод CellRange.getFormula(), чтобы получить формулу, если она есть.

import com.spire.xls.CellRange;

import com.spire.xls.Workbook;

import com.spire.xls.Worksheet;

public class readFormulas {

public static void main(String[] args) {

//Create an object of Workbook

Workbook workbook = new Workbook();

//Load an Excel file

workbook.loadFromFile("InsertFormulas.xlsx");

//Get the first worksheet

Worksheet sheet = workbook.getWorksheets().get(0);

//Loop through the cells within B1:B13

for (Object cell: sheet.getCellRange("B1:B13″)

) {

CellRange cellRange = (CellRange)cell;

//Detect if a cell has a formula

if (cellRange.hasFormula()){

//Print out the formula

String certainCell = String.format("Cell[%d, %d] has a formula: ",cellRange.getRow(),cellRange.getColumn());

System.out.println(certainCell + cellRange.getFormula());

}

}

}

}

Заключение

В этой статье мы узнали, как вставлять или читать формулы в Excel с помощью Spire.XLS for Java. Эта библиотека поддерживает множество других функций, таких как:

Преобразование Excel в PDF в Java

Создание, чтение или обновление Excel в Java

Печать документов Excel в Java

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.