找回密码
 立即注册

QQ登录

只需一步,快速开始

pursuin

新手上路

1

主题

3

帖子

33

积分

新手上路

积分
33
  • 30

    金币

  • 主题

  • 帖子

最新发帖
pursuin
新手上路   /  发表于:2015-10-29 22:27  /   查看:6081  /  回复:4
如题,c1flexgrid 导出excel字体样式和边框丢失。

请高手指点,万分感谢!!!

4 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-10-30 09:59:00
沙发
回复 1楼pursuin的帖子

很抱歉非工作时间论坛无人值班,给您造成了等待。
请问您使用的是flexgrid for winform版本么?
如果是,我在随机安装示例中测试,并未重现您的问题。
示例路径:
\Documents\ComponentOne Samples\Studio for WinForms\C1FlexGrid\CS\Excel
测试版本:2015V2。
请注意,如果您在flexgrid上设置了格式,请在保存到excel的时候选择所见即所得的保存方式。
即参考如下代码:
  1. flexgrid.SaveExcel(filename, table, FileFlags.AsDisplayed);
复制代码


请参考我们的示例进行检查。
如果您依然有问题,请提供可供测试的文档和示例,我们可以帮您看看问题出在哪里。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
pursuin
新手上路   /  发表于:2015-10-30 21:45:00
板凳
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             DataTable data = new DataTable();
  4.             data.Columns.Add("name", typeof(string));
  5.             data.Columns.Add("amount", typeof(decimal));
  6.             data.Columns.Add("remark", typeof(string));
  7.             for (int i = 0; i < 100; i++)
  8.             {
  9.                 DataRow dr = data.NewRow();
  10.                 dr["name"] = i.ToString();
  11.                 dr["amount"] = 3.14m;
  12.                 dr["remark"] = "";
  13.                 data.Rows.Add(dr);
  14.             }
  15.             flexgrid.DataSource = data;
  16.             flexgrid.AllowSorting = AllowSortingEnum.None;
  17.             flexgrid.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom;
  18.             C1.Win.C1FlexGrid.CellRange t1 = flexgrid.GetCellRange(6, 1, 6, 2);
  19.             t1.StyleNew.TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter;
  20.             flexgrid.MergedRanges.Add(t1);
  21.             CellRange cr = flexgrid.GetCellRange(1, 1, 14, 2);
  22.             cr.StyleNew.Border.Color = Color.Black;
  23.             cr.StyleNew.Border.Style = BorderStyleEnum.Double;// BorderStyleEnum.Flat;
  24.             CellStyle cs1 = flexgrid.Styles.Add("Sumi");
  25.             cs1.ForeColor = Color.Red;
  26.             cs1.Font = new System.Drawing.Font("宋体", 24f);
  27.             flexgridORg.Rows[4].Style = cs1;
  28.             flexgridORg.Rows[4].Height = 45;
  29.         }
  30.         private void button2_Click(object sender, EventArgs e)
  31.         {
  32.             SaveFileDialog sfd = new SaveFileDialog();
  33.             sfd.Filter = "*.xls|*.xls";
  34.             if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  35.             {
  36.                 flexgrid.SaveExcel(sfd.FileName, "TEST", FileFlags.AsDisplayed | FileFlags.IncludeMergedRanges);
  37.                 MessageBox.Show("当前报表导出完成!", "操作结果", MessageBoxButtons.OK, MessageBoxIcon.Information);
  38.             }
  39.         }
复制代码

还是导出不了
回复 使用道具 举报
pursuin
新手上路   /  发表于:2015-10-30 21:48:00
地板
显示样式没有问题,导出也能成功,但字体样式和边框没得
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-11-2 10:49:00
5#
回复 3楼pursuin的帖子

谢谢提供的代码。
从你的代码来看,您指的是如下代码设置的边框样式:
  1.       CellStyle cs1 = flexgrid.Styles.Add("Sumi");
  2.             cs1.ForeColor = Color.Red;
  3.             cs1.Font = new System.Drawing.Font("宋体", 24f);
复制代码

这是flexgrid的设计。由于flexgrid的内置的style样式和MS Excel有很大的差别。代码中的样式不会再excel文件里做对应。

评分

参与人数 1满意度 +5 收起 理由
pursuin + 5 PS: 可否设置成MSEXCEL支持的样式?

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部