目前,在做一个在winform中显示excle的功能(有个excel的模板,是根据模板生成excel)。从数据库中取出数据,然后把一些文字数据填充到excel中,还有些,就是将取出的数据,做解析,然后在excel中画出相关的菱形、圆形等,并控制这些图形的位置。
之前用MS的excel可以直接实现此功能,但是就是速度很慢。20条数据,大概就需要50s在网上查,听很多人说NPOI比较好,可以速度快些,而且可以不需要考虑office的版本的问题。
现在,用NPOI实现了文字数据的显示功能。
但是,现在有个问题:我在excel的模板中,设置了某些样式:如,第一列的文字是竖着的。但是,如果我在代码中,再此设置第一列的单元格的样式,他就会将我的模板中设置的些样式都忽略掉。我设置的是,第一列的合并了的单元格A5到A10合并了,现在要在此合并了的单元格外面添加边框。
代码中写的单元格样式是:
private static HSSFCellStyle getCellStyle()
{
HSSFCellStyle celStype = workbook.CreateCellStyle();
celStype.BorderBottom = HSSFCellStyle.BORDER_THIN;
celStype.BorderLeft = HSSFCellStyle.BORDER_THIN;
celStype.BorderRight = HSSFCellStyle.BORDER_THIN;
celStype.BorderTop = HSSFCellStyle.BORDER_THIN;
return celStype;
}在显示时,就只显示了我设置的这个边框,原来的模板中的样式什么的都没有了。
怎么样可以保持原来的样式,又可以在代码中添加新的样式啊????ExcelNPOI
之前用MS的excel可以直接实现此功能,但是就是速度很慢。20条数据,大概就需要50s在网上查,听很多人说NPOI比较好,可以速度快些,而且可以不需要考虑office的版本的问题。
现在,用NPOI实现了文字数据的显示功能。
但是,现在有个问题:我在excel的模板中,设置了某些样式:如,第一列的文字是竖着的。但是,如果我在代码中,再此设置第一列的单元格的样式,他就会将我的模板中设置的些样式都忽略掉。我设置的是,第一列的合并了的单元格A5到A10合并了,现在要在此合并了的单元格外面添加边框。
代码中写的单元格样式是:
private static HSSFCellStyle getCellStyle()
{
HSSFCellStyle celStype = workbook.CreateCellStyle();
celStype.BorderBottom = HSSFCellStyle.BORDER_THIN;
celStype.BorderLeft = HSSFCellStyle.BORDER_THIN;
celStype.BorderRight = HSSFCellStyle.BORDER_THIN;
celStype.BorderTop = HSSFCellStyle.BORDER_THIN;
return celStype;
}在显示时,就只显示了我设置的这个边框,原来的模板中的样式什么的都没有了。
怎么样可以保持原来的样式,又可以在代码中添加新的样式啊????ExcelNPOI
解决方案 »
- 【提问-双缓冲】我有个自己不太确定的问题
- C#开发tuxedo的客服端,为什么libwscdnet.dll无法引用?
- C#中有没有类似WaitForSingleObject函数的功能?
- C#右移运算问题。有些不明白。请教。
- “执行createhandle()时无法调用Dispose()”错误
- C#正则 如果替换指定的内容,保留要的内容
- 急~~~,在线等:反射调用类型方法返回未知类型列表问题
- C#中强类型数据集的问题
- 求图片放大缩小但图片保持清晰的方法!!
- c#二次开发消息扑捉写入数据库失败
- 网页弹出的JS框,我想用回车自动确认,但是不知道怎么在webbrowser里面模拟按回车。求指点。当然如果有别的办法也可以的。
- FTP文件批量下载上传问题
我看到有个相关的方法:
HSSFCellStyle celStype = workbook.GetCellStyleAt(i);这个地方的i是表示index within the Set of styles就不晓得这个地方i值应该赋多少了???
2、向temp添加新样式;
3、将新样式应用
string fName = ".\\" + tNo + ".xls";
File.Copy(mFile, fName, true);FileStream file = new FileStream(mFile, FileMode.Open, FileAccess.Read);
HSSFWorkbook hssfWookBook = new HSSFWorkbook(file);
HSSFSheet sheet1 = (HSSFSheet)hssfWookBook.GetSheet("Sheet1");sheet1.GetRow(0).GetCell(0).SetCellValue(oValue);FileStream file2 = new FileStream(fName, FileMode.Create);
hssfWookBook.Write(file2);
file2.Close();
file.Close();