我正在为excel创建导出文档的脚本。
如何使单元格值如" 名称:标记 DOB: 11-11-2014"通过合并几个细胞?
答案 0 :(得分:8)
您需要做的是为您的单元格创建RichTextString。这是将不同格式/样式应用于同一单元格的不同部分以便在Excel中显示的方式
您需要查看POI "Working With Rich Text" example以了解有关如何使用它的更多信息,但广泛地说它会像
一样 Cell cell = row.createCell(1);
RichTextString rt = new XSSFRichTextString("The quick brown fox");
Font font1 = wb.createFont();
font1.setBoldWeight(Font.BOLDWEIGHT_BOLD);
rt.applyFont(0, 10, font1);
Font font2 = wb.createFont();
font2.setItalic(true);
font2.setUnderline(XSSFFont.U_DOUBLE);
rt.applyFont(10, 19, font2);
Font font3 = wb.createFont();
font3.setBoldWeight(Font.BOLDWEIGHT_NORMAL);
rt.append(" Jumped over the lazy dog", font3);
cell.setCellValue(rt);
那应该给你一个粗体,斜体+下划线和正常
混合的单元格答案 1 :(得分:7)
我为此创建了一个简短的完整示例。
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
class RichTextTest {
public static void main(String[] args) {
Workbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("Sheet1");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
RichTextString richString = new XSSFRichTextString( "Name: Mark DOB: 11-11-2014" );
//^0 ^4 ^11^14
Font fontBold = wb.createFont();
//fontBold.setBoldweight(Font.BOLDWEIGHT_BOLD);
fontBold.setBold(true);
richString.applyFont( 0, 4, fontBold );
richString.applyFont( 11, 14, fontBold );
cell.setCellValue(richString);
try {
FileOutputStream fileOut = new FileOutputStream("workbook.xlsx");
wb.write(fileOut);
fileOut.flush();
fileOut.close();
} catch (FileNotFoundException fnfex) {
} catch (IOException ioex) {
}
}
}
有关详细信息,请参阅文档。
如何创建工作簿,工作表和单元格:http://poi.apache.org/spreadsheet/quick-guide.html#CreateCells
如何使用Richtext:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRichTextString.html
字体界面:https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Font.html
答案 2 :(得分:0)
您是否尝试过使用JXLS?
使用xls模板,您可以从Excel读取和写入数据。它的使用非常简单。