找回密码
 立即注册

QQ登录

只需一步,快速开始

Hjr2350
论坛元老   /  发表于:2013-5-7 15:13  /   查看:20791  /  回复:31
我现在遇到了,chart图表显示中文出现乱码的问题
现象如“麻烦请教下,导出Excel带chart图表中中文部分是乱码”帖子中所显示的样子
我使用DOF推荐的第二种方法
“2、使用下面的方式添加图表fpSpread1.ActiveSheet.AddChart(new FarPoint.Win.Spread.Model.CellRange(0, 0, 4, 5), typeof(FarPoint.Win.Chart.BarSeries), 500, 300, 0, 100);”
来做的但是我这显示效果没有发生变化
我图表生成代码如下
  1.                //初始化
  2.                 fpSpread_Bar.Sheets[0].Charts.Clear();
  3.                 fpSpread_Bar.Sheets[0].RowCount = 1;

  4.                 BarSeries bseries_People = new BarSeries();
  5.                 bseries_People.GapWidth = 0.25F;
  6.                 bseries_People.BarFill = new SolidFill(Color.IndianRed);
  7.                 bseries_People.SeriesName = "预约人数";
  8.                 bseries_People.LabelVisible = true;

  9.                 //获得图标数据源
  10.                 int iCount = 0;
  11.                 for (int i = 0; i < fpSpread_Table.Sheets[0].RowCount - 2; i++)
  12.                 {
  13.                     if (fpSpread_Table.Sheets[0].Cells[i, 1].Text != "")
  14.                     {
  15.                         bseries_People.Values.Add(Convert.ToDouble(fpSpread_Table.Sheets[0].Cells[i, 1].Text));
  16.                         bseries_Cost.Values.Add(Convert.ToDouble(fpSpread_Table.Sheets[0].Cells[i, 2].Text));
  17.                         if (fpSpread_Table.Sheets[0].Cells[i, 0].Text != "")
  18.                         {
  19.                             bseries_People.CategoryNames.Add(fpSpread_Table.Sheets[0].Cells[i, 0].Text);
  20.                             bseries_Cost.CategoryNames.Add(fpSpread_Table.Sheets[0].Cells[i, 0].Text);
  21.                         }
  22.                         iCount++;
  23.                     }
  24.                 }

  25.                 if (iCount <= 0) return;    //当收集数据源为空时,退出

  26.                 fpSpread_Bar.Sheets[0].AddColumns(0, iCount*2);
  27.                 fpSpread_Bar.Sheets[0].AddRows(0, 38);  //添加相应高度的行数,否则滚动条异常

  28.                 //设置柱形样式
  29.                 YPlotArea plotArea_People = new YPlotArea();
  30.                 plotArea_People.Location = new PointF(0.1f, 0.2f);
  31.                 plotArea_People.Size = new SizeF(0.8f, 0.6f);
  32.                 plotArea_People.Series.Add(bseries_People);

  33.                 //添加标题
  34.                 LabelArea label_People = new LabelArea();
  35.                 label_People.Location = new PointF(0.5f, 0.02f);
  36.                 label_People.AlignmentX = 0.5f;
  37.                 label_People.AlignmentY = 0.0f;
  38.                 label_People.Text = "柱形图-预约人数";

  39.                 //组合图表
  40.                 ChartModel model_People = new ChartModel();
  41.                 model_People.PlotAreas.Add(plotArea_People);
  42.                 model_People.LabelAreas.Add(label_People);

  43.                 //插入到表格中
  44.                 fpSpread_Bar.ActiveSheet.AddChart(new FarPoint.Win.Spread.Model.CellRange(0, 0, 14, 15), typeof(BarSeries), fpSpread_Bar.Width - 30, 385, 0, 0);
  45.                 fpSpread_Bar.ActiveSheet.Charts[0].Model = model_People;
  46.                 fpSpread_Bar.ActiveSheet.Charts[0].Locked = true;
复制代码


我写法有什么问题吗?我下方的说明文字不可能去除,有没有方法来解决这个问题?我试验了下,在设计器中不存在该问题
谢谢你的帮助

31 个回复

正序浏览
iceman
社区贡献组   /  发表于:2013-5-22 17:55:00
32#
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-5-22 17:47:00
31#
好吧,了解。
2010中打开正常显示结果,现在哪个版本的spread支持?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-22 12:12:00
30#
回复 29楼Hjr2350的帖子

1.UseOOXMLFormat 枚举: Saves the spreadsheet to an Excel 2007 (OfficeOpen XML) format. 是针对 office 2007 的设置,office 2003 不支持该格式。
2.保存到 xls 格式,图表样式改变问题,被确定为产品 bug #99932602,已经添加到产品修复列表中。

以上,谢谢
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-5-22 10:24:00
29#
回复 26楼iceman的帖子
回复 25楼iceman的帖子

问题二关于 office 2003 乱码,又测试了下,通过以下代码保存是没......
iceman 发表于 2013-5-21 16:58:00

昨天没有看见这个回复,不好意思
如果这样保存的话,又会出现一开始的,图表的图例乱码问题,希望有完美的解决方案
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-21 17:15:00
28#
回复 27楼Hjr2350的帖子

好,由于产品组设在 USA,和我们有时差,所以最快需要明天回复。谢谢
回复 使用道具 举报
Hjr2350
论坛元老   /  发表于:2013-5-21 16:59:00
27#
期待你的回复,2003使用的还是比较多的
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-21 16:58:00
26#
回复 25楼iceman的帖子

问题二关于 office 2003 乱码,又测试了下,通过以下代码保存是没有问题的:


  1. this.fpSpread1.SaveExcel("2003.xls");
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-21 16:49:00
25#
回复 23楼Hjr2350的帖子

问题二关于 office 2003 乱码,我已经重现。
我会把问题提交给产品组,查明问题原因。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-21 16:48:00
24#
回复 23楼Hjr2350的帖子

Hjr2350 您好,
我只是通过 以下代码保存,没有做特殊设置:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.Open("1.xml");

  4.             this.fpSpread1.SaveExcel("2003.xls", FarPoint.Excel.ExcelSaveFlags.UseOOXMLFormat);
  5.         }
复制代码

测试 Demo:
8887-chart.zip (69.3 KB, 下载次数: 319)
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部