字体影响整个单元格分析

 百家乐概况     |      2020-03-17 01:44

建立了一个 Excel 文件作为模板,其中第一行为模板行,设置了红色字体,在往其中填充数据时,将模板行复制到下面的各行,再在下面各行填充数据。

lom599乐百家手机 1

现在想给第 3 行第 1 个单元格加粗,使用下面的代码:

Poi 读取文件的例子网上比较多, 但是很多都有小问题,今天我做了一个上传文件并显示XLS内容的模块,

// 法一 cell.Sheet.Workbook.GetFontAt(cell.CellStyle.FontIndex).Boldweight = 800; // 法二 cell.CellStyle.GetFont(cell.Sheet.Workbook).Boldweight = 800;

参考了 例程 ,

上面两个方法都是一样的,就是获得 Font,为其设置 Boldweight,只不过一个是从 Workbook 发起,一个是从 Cell 发起。

lom599乐百家手机 ,由于我用的3.7 的版本, 例程里的代码import 用的WorkbookFactory在3.7里已经不存在了,不知道

问题出现了:所有行的第 1 列都被加粗了。

参考用的那个版本.所有我就使用了hssf和 ss相结合的调用.没有再使用例程方生产方式

百家了乐八大技巧 ,想了一下,可能是由于各个单元格共用一个 Font 造成的。于是尝试下面的代码:

例程 Workbook wb = WorkbookFactory.create(is); 

IFont font = cell.CellStyle.GetFont(cell.Sheet.Workbook); font.Boldweight = boldWeight; cell.CellStyle.SetFont(font);

我的代码: HSSFWorkbook wb = new HSSFWorkbook(fs); 

试图通过 SetFont 来以克隆的方式,复制产生一个新的 Font,但是结果依旧,说明 SetFont 并不会克隆,而只是地址赋值。

例程有个漏洞就是为判断cell为空的情况,读取的数据列会自动向前

那我新建一个 Font 怎么样呢?

移动一列.这个问题很验证,我测试了一个下午才发现的.