【ASP.NET】excel导入spread后,导出pdf,第一二行中列的左边框很粗,希望统一样式
回复 19楼iceman的帖子这个excel导入spread后,导出pdf,第一二行中列的左边框很粗,希望统一样式,代码控制没作用,该怎么办? 回复 1楼study1990的帖子
您好,我测试了一下,您描述的情况属实。
这个需要咨询一下产品团队,一有新的进展会及时通知您的。
this.FpSpread1.OpenExcel(@"C:\Users\rogerwang\Desktop\損益計算書(PL).xlsx");
this.FpSpread1.SavePdf(@"c:\a.pdf");
回复 1楼study1990的帖子
产品团队反馈如下:
Excel导入Spreadfor ASP.NET是通过如下的对应关系:
Border Styles Substituted
目前无接口修改,非常抱歉:) 。 回复 3楼roger.wang的帖子
在spread中是Solid - 2,导出pdf时设置为Solid-1,导出的pdf还是很粗,这是bug吗?
但当把最左边单元格的左边框设成1或0,就可以了。不过就多出个口子。 回复 4楼study1990的帖子
您说的情况,我写代码验证了,情况属实。
可选方案有2个:
1 默认不做处理,导出的PDF边框粗一些
2 如下修改为1个pixel,但是会存在一个缺口(左侧或者右侧)
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
return;
}
this.FpSpread1.OpenExcel(@"C:\a.xls");
SetBord(1);
SetEdge();
this.FpSpread1.SavePdf(@"c:\a.pdf");
}
private void SetBord(int border)
{
for (int i = 0; i < FpSpread1.Rows.Count; i++)
{
for (int j = 0; j < FpSpread1.Columns.Count; j++)
{
this.FpSpread1.Cells.Border.BorderSizeBottom = 1;
this.FpSpread1.Cells.Border.BorderSizeLeft = 1;
this.FpSpread1.Cells.Border.BorderSizeRight = 1;
this.FpSpread1.Cells.Border.BorderSizeTop = 1;
}
}
}
private void SetEdge(int border = 2)
{
for (int i = 0; i < FpSpread1.Rows.Count; i++)
{
for (int j = 0; j < FpSpread1.Columns.Count; j++)
{
if (i == 0)
{
this.FpSpread1.Cells.Border.BorderSizeTop = 2;
}
else if (i == FpSpread1.Rows.Count - 1)
{
this.FpSpread1.Cells.Border.BorderSizeBottom = 2;
}
else if (j == 0)
{
this.FpSpread1.Cells.Border.BorderSizeLeft = 2;
}
else if (j == FpSpread1.Columns.Count - 1)
{
this.FpSpread1.Cells.Border.BorderSizeRight = 2;
}
}
}
}
我这里会给产品团队报一个bug,不过可能修复的周期较长。
非常抱歉:) 回复 5楼roger.wang的帖子
好吧,我再给客户反映一下。
:share: 回复 6楼study1990的帖子
感谢理解 :mj72:
页:
[1]