このチュートリアルでは、数式を削除し、簡単なコードを使用してJavaでExcelにデータを保持する方法について説明します。 Excelファイルをロードし、それを処理して各セルに個別にアクセスして数式を削除する方法について詳しく説明します。最後に、このファイルをそのまま、またはXLSXファイルのような別の形式でディスクに保存できます。
数式を削除するが、JavaでExcelにデータを保持する手順
- Mavenリポジトリから、Aspose.Cellsライブラリへの参照をプロジェクトに追加します
- プログラムでインポートを使用して、WorkbookクラスとCellクラスへの参照を追加します
- 数式を削除するブックをロードします
- 数式が削除されるターゲットワークシートのセルへの参照を取得します
- セル参照を使用して、既存の値を一時変数に保存します
- 数式をターゲットセルに空に設定します
- 一時変数からセル値を設定する
- データのみを持つ数式なしで出力ファイルを保存します
これらの手順を使用して、ターゲットExcelファイルの任意のワークシートにアクセスし、数式を削除する目的のセルへの参照を取得できます。この操作では、最初に値を一時変数に保存してから、数式を削除します。最後に、元の値が同じセルに再度設定されます。
Javaでデータを削除せずにExcelで数式を削除するコード
import com.aspose.cells.Cell; | |
import com.aspose.cells.License; | |
import com.aspose.cells.Workbook; | |
public class HowToRemoveFormulaButKeepDataInExcelInJava { | |
public static void main(String[] args) throws Exception { //main function for HowToRemoveFormulaButKeepDataInExcelInJava | |
// Initialize a license to avoid trial version watermark in the output file after removing formulas | |
License license = new License(); | |
license.setLicense("Aspose.Cells.lic"); | |
// Load the Excel file from which formula is to be removed | |
Workbook excelWorkbookWithFormula = new Workbook("SampleExcelWithFormula.xlsx"); | |
// Get a reference of the cell where formula is to be removed | |
Cell cellWithFormula = excelWorkbookWithFormula.getWorksheets().get(0).getCells().get("C1"); | |
// Store the value in a temporary variable for later use | |
Object tempData = cellWithFormula.getValue(); | |
// Remove the formula by setting its value empty | |
cellWithFormula.setFormula(""); | |
// Save the value back from the temporary variable | |
cellWithFormula.setValue(tempData); | |
// Save the workbook with data without the formula | |
excelWorkbookWithFormula.save("WorkbookWithDataOnly.xlsx"); | |
} | |
} |
上記のサンプルコードは、数式を削除し、ExcelのデータをJavaのセルごとに保持する方法を示しています。ただし、大きなファイルがあり、ブック全体からすべての数式を一度に削除する場合は、次のサンプルコードに示すように、ワークシートのCellsコレクションでremoveFormulas()を呼び出すだけです。
Javaでデータを削除せずにExcelですべての数式を削除するコード
import com.aspose.cells.License; | |
import com.aspose.cells.Workbook; | |
import com.aspose.cells.Worksheet; | |
public class HowToRemoveAllFormulasButKeepDataInExcelInJava { | |
public static void main(String[] args) throws Exception { //main function for HowToRemoveAllFormulasButKeepDataInExcelInJava | |
// Initialize a license to avoid trial version watermark in the output file after removing all formulas | |
License license = new License(); | |
license.setLicense("Aspose.Cells.lic"); | |
// Load the target workbook from which all formulas are to be removed | |
Workbook workbookWithFormula = new Workbook("WorkbookWithFormulas.xlsx"); | |
// Iterate through all the worksheets in the workbook to remove formulas | |
for(Object object : workbookWithFormula.getWorksheets()) | |
{ | |
Worksheet worksheet = (Worksheet)object; | |
worksheet.getCells().removeFormulas(); | |
} | |
// Save the resultant workbook having data only | |
workbookWithFormula.save("WorkbookWithoutFormulas.xlsx"); | |
} | |
} |
このコードを実行するために、InteropやMSExcelなどの他のサードパーティツールやソフトウェアは必要ないことに注意してください。また、出力ファイルをPDFなどの他の形式で保存する場合は、JavaでExcelからPDFを生成する方法の記事を参照してください。