When a text input in an Excel cell is too long, it overflows to other cells. In Microsoft Excel, you can use the wrap text feature to display the text in multiple lines within one cell, you can also display the text back in one line by unwrapping it. In this article, I am going to demonstrate how to wrap and unwrap text in an Excel file programmatically in Java using Free Spire.XLS for Java library.
Add Dependencies
If you use maven, specify the following dependencies for Free Spire.XLS for Java library in your project’s pom.xml file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>http: //repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId> e-iceblue </groupId> <artifactId>spire.xls.free</artifactId> <version> 3.9 . 1 </version> </dependency> </dependencies> |
For non-maven projects, download Free Spire.XLS for Java pack from this website and add Spire.Xls.jar in the lib folder into your project as a dependency.
The input Excel:
The output Excel:
Wrap Text and Unwrap Text
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import com.spire.xls.ExcelVersion; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class WrapOrUnwrapText { public static void main(String []args) throws Exception { //Create a Workbook instance Workbook workbook = new Workbook(); //Load the Excel file workbook.loadFromFile( "Input.xlsx" ); //Get the first worksheet Worksheet sheet = workbook.getWorksheets().get( 0 ); //Wrap text in cell "A1" sheet.getRange().get( "A1" ).getStyle().setWrapText( true ); //Unwrap text in cell "A6" sheet.getRange().get( "A6" ).getStyle().setWrapText( false ); //Save the file workbook.saveToFile( "WrapOrUnwrapText.xlsx" , ExcelVersion.Version2013); } } |
Troubleshooting: Wrap Text Didn’t Work?
Sometimes, you may find the wrap text didn’t work. Check if you have set the height of the row as a fixed value. In Microsoft Excel, if you manually modify the height of a row and then format a cell in that row to wrap text, Excel does not change the height of the row to fit all the text in the cell.
The workaround is to change the row height as autofit first and then wrap text, as shown in the following code.
1 2 | sheet.getRange().get("A1").autoFitRows(); sheet.getRange().get("A1").getStyle().setWrapText(true); |
Thanks for taking time to read this article, I hope it’s helpful for you.
Comments
Post a Comment