- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题
在 SXSSF 工作簿中:
如何设置字体?
如何将细胞类型设置为日期?
上下文
我需要编写一个包含大量行和列(400.000 行,每行 50 个字段)的 excel .xlsx 文件,所以我使用的是 apache poi,SXSSF 工作簿。我用这么多的虚拟文本创建了一个测试文件,它可以工作,但我希望单元格有一个自定义字体:所以如果文本以某种方式代表时间单元格类型应该设置为“日期”(允许我轻松地按日期过滤行) .
我编写了一个函数,它允许我根据传递给函数的 textType 值创建一个单元格、检查和修改其文本类型(货币、字符串、数据)。当我检查数据时,文本类型被正确识别。货币和文本已正确修改,但是当我尝试设置字体和数据类型时,它根本不起作用。
(我已经有一个工作函数(XSSF),它使用自定义字体和不同的数据类型(包括“日期”)创建一个 Excel,由于 GC 开销,它无法生成大的 Excel 文件,这就是我不得不切换到 SXSSF 的原因)
错误
我得到这种编译错误。
Errors incompatible types;found : org.apache.poi.ss.usermodel.Font,required: org.apache.poi.xssf.usermodel.XSSFFont at line 235 (235:40) incompatible types;found : org.apache.poi.ss.usermodel.DataFormat,required: org.apache.poi.xssf.usermodel.XSSFDataFormat at line 271 (271:54) incompatible types;found : org.apache.poi.ss.usermodel.DataFormat,required: org.apache.poi.xssf.usermodel.XSSFDataFormat at line 308 (308:54) incompatible types;found : org.apache.poi.ss.usermodel.DataFormat,required: org.apache.poi.xssf.usermodel.XSSFDataFormat at line 335 (335:54) incompatible types;found : org.apache.poi.ss.usermodel.DataFormat,required: org.apache.poi.xssf.usermodel.XSSFDataFormat at line 375 (375:66)
XSSFFont font = (XSSFFont) workbook.createFont();
XSSFDataFormat df = (XSSFFont) workbook.createDataFormat();
ClassCastException error
//[...]
SXSSFWorkbook workbook = new SXSSFWorkbook(100);
Sheet sheet;
Row row;
Cell cell;
//[...]
XSSFFont font = workbook.createFont();
font.setBold(fontBold);
font.setItalic(fontItalic);
font.setFontHeightInPoints( (short) fontSize);
if (!fontUnderline) {
font.setUnderline(FontUnderline.NONE);
}
else {
font.setUnderline(FontUnderline.SINGLE);
}
font.setColor(fontColor);
CellStyle style = workbook.createCellStyle();
style.setFont(font);
//[...]
if (textType == 'T') {
XSSFDataFormat df = workbook.createDataFormat();
style.setDataFormat(df.getFormat("d-mmm-yyyy hh:mi:ss"));
Calendar c = Calendar.getInstance();
c.set(year, month, day, hour, minute,second);
cell.setCellValue(c.getTime());
}
//in the end I set cell value and style
cell.setCellStyle(style);
cell.setCellValue(text);
最佳答案
在这里,我使用 SXSSFWorkbook
创建了一个简短的示例。并用日期填充 1 个单元格并应用正确的 format
以及 font
.
SXSSFWorkbook s = new SXSSFWorkbook();
Font font = s.createFont();
font.setBold(true);
font.setItalic(true);
short dateStyle = s.createDataFormat().getFormat("mm/dd/yy;@");
CellStyle dateCellFormat = s.createCellStyle();
dateCellFormat.setDataFormat(dateStyle);
dateCellFormat.setFont(font);
SXSSFSheet sheet = s.createSheet("Test");
Row r = sheet.createRow(0);
Cell c = r.createCell(0);
c.setCellValue(new Date());
c.setCellStyle(dateCellFormat);
s.write(Files.newOutputStream(Paths.get("D:/test.xlsx"), StandardOpenOption.CREATE_NEW));
s.close();
Interface
的)
关于java - SXSSF 无法创建 Font 和 DateFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48189390/
将以下内容添加到我的键绑定(bind)中可以让我将 Sublime Text 3 中的字体大小重置为默认大小: { "keys": ["ctrl+0"], "command": "reset_font
我有一个如下所示的 css 字体系列(由于显示限制,我已经缩短了它,否则它比我在这里展示的要大得多)现在你能告诉我是否有办法将 url()content 转换为 .ttf 字体格式或其他标准字体格式吗
具体来说... and ...显示为双倍或四倍。 最佳答案 Customize Twitter Bootstrap here. Make sure to uncheck the default "
当包含 @font-face 和 src 以导入网络字体时,我注意到您可以传入 2 个可选值。我目前不这样做。 我有 2 种网络字体,Lato Regular 和 Lato Bold。 我应该在 @f
我正在本地主机上测试一个字体很棒的网站,它工作正常;但是当我将它上传到我的远程站点时,它不再显示字体了。我该如何解决?尝试了所有调试但没有成功。 网站在那里 www.sevotec.it/ordine
我开始使用 font-squirrel (http://www.fontsquirrel.com/tools/webfont-generator) 来快速使我的字体跨浏览器兼容,我只是想知道字体质量是
以前我复制了一个ttf文件到C:\Windows\Fonts,点击文件显示字体,然后点击[安装],一切正常。 当我现在执行此过程时,字体未安装在 C:\Windows\Fonts 中,而是安装在 C:
我注意到,在工作中,Google Web字体未出现在IE9和Firefox 6(Windows和Mac OS)上。所有文件都已加载,但字体从未渲染。在那些相同的浏览器上,它可以在家正常工作。 Chro
我正在学习 Swift UI 教程,我遇到了这个错误,而讲师没有。 .font 错误在第一个 Vstack 中仅出现一次,而第二次则没有问题。 import SwiftUI struct Conten
我知道使用@font-face 允许浏览器下载自定义字体并在网页中使用它,就像使用任何系统字体一样。 我想知道的是浏览器是对字体进行编码还是在不公开的情况下使用它? 谢谢 最佳答案 浏览器无法保护字体
使用基于@font-face 标记的标准fontsquirrel .. 字体呈现在较粗的一面。下面是一个屏幕截图,以几种不同的方式展示了字体。顶部是 photoshop 的渲染图,第二个是相同字体的
我必须在元素中使用花哨的字体,但我真的很想避免使用 sifr 和其他丑陋的替代品,所以我正在寻找@font-face。 但是,我真的很困惑几个博客/网站提供了关于它的可用性的不同观点。准备好了吗?目前
我几乎在我工作的所有项目中都使用 fontawesome。但这次我得到的图标显示为正方形。我还尝试了 stackoverflow 上列出的几乎所有解决方案,但似乎对我的情况没有任何效果。我猜是什么东西
好的,所以我正在尝试让 IE9 显示字体 Agenda。我像往常一样去了 fontsquirrel,它说 font bureau 不允许他们创建字体套件。然后我去了 codeandmore 并在那里制
Font Awesome 4.0是对 Font Awesome 从头开始的完全重写。主要的新功能之一是图标现在具有命名空间。除了命名空间之外,图标还使用基于一致性和可预测性的新命名约定。不幸的是,
我使用版本 3.2.9 (Media Mark) 的 SASS 并且我想使用我的自定义 font-family 的 3 个变体Source Sans Pro 字体(Light、Regular、Bold
在一些 css 文件中嵌入一些 base64 字体,但 CSP 阻止了这些:类似于 url("data:font/woff;base64,d09GRk9UVE...); 当前 CSP =“base-u
我怎样才能使 Font Awesome 图标像本页中那样大: http://fontawesome.io/icon/bath/ 我使用了 fa-5x 类,但它与页面示例中最大的图标不同。 下面是我使用
我有一个带有Bootsrap 4(SASS)和Font Awesome 5的MVC项目。我正在尝试使旋转的图标可以与Ajax加载面板一起使用,但是它不起作用。 Test Spin
似乎 font-awesome 支持自定义图标,并附有详细说明如何创建和提交您自己的图标,但该信息在他们的网站上不再可用。这是否意味着不再支持此功能并且您只能请求由 font-awesome 团队完成
我是一名优秀的程序员,十分优秀!