日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将C1Chart数据导出到Excel

發布時間:2025/7/14 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将C1Chart数据导出到Excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大多數情況下,當我們說將圖表導出到Excel時,意思是將Chart當成圖片導出到Excel中。如果是這樣,你可以參考幫助文檔中保存和導出C1Chart章節。

不過,也有另一種情況,當你想把圖表中的數據用文本格式導出到Excel時,應該怎么辦?本文就是針對這個需求提供的解決辦法,將C1Chart綁定的數據導出到Excel表單中。

綁定Chart數據

關于Chart數據綁定,你可以參考文檔。本文Demo中使用如下代碼進行數據綁定:

DataTable dTable = new DataTable();dTable.Columns.Add("時間");dTable.Columns.Add("銷量");DataRow dRow = dTable.NewRow();dRow.ItemArray = new object[] { "一月", 2000 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "二月", 3423 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "三月", 2394 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "四月", 5920 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "五月", 4302 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "六月", 5222 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "七月", 6213 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "八月", 7990 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "九月", 6928 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "十月", 5021 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "十一月", 4321 };dTable.Rows.Add(dRow);dRow = dTable.NewRow();dRow.ItemArray = new object[] { "十二月", 3232 };dTable.Rows.Add(dRow);c1Chart1.Data.ItemNameBinding = new Binding("時間");c1Chart1.Data.Children.Add(new DataSeries() { ValueBinding = new System.Windows.Data.Binding("銷量"), Name = "銷量" });c1Chart1.Data.ItemsSource = dTable.DefaultView;c1Chart1.ChartType = ChartType.Column;c1Chart1.View.AxisY.AutoMin = false;c1Chart1.View.AxisY.Min = 1000;c1Chart1.View.AxisY.AutoMax = false;c1Chart1.View.AxisY.Max = 8000;c1Chart1.View.AxisY.MajorUnit = 1000;

?

導出Chart數據

現在看來,除了遍歷Chart Element獲取數據,沒有別的辦法可以導出Chart數據了。通過AxisX UIElement集合中拿到TextBlock元素并讀取它的“Text”屬性以獲得標簽軸的數據。同樣的,檢索Bar Elements獲得每個系列數據然后讀取“DataPoint”屬性。實際執行請參考如下代碼:

public C1.Silverlight.Excel.C1XLBook ExportChartExcel(C1.Silverlight.Chart.C1Chart _chart) {C1XLBook wb = new C1XLBook();wb.Sheets.Add("Chart Data");int _row = 1;IList<DependencyObject> _itemNameList = new List<DependencyObject>();VTreeHelper.GetChildrenOfType((_chart.View.AxisX as Panel), typeof(TextBlock), ref _itemNameList);wb.Sheets[0][0, 0].Value = "Month";foreach (var _itemNameObject in _itemNameList.ToList()){wb.Sheets[0][_row, 0].Value = (_itemNameObject as TextBlock).Text;_row += 1;}foreach (DataSeries _dataSeries in _chart.Data.Children){_row = 1;wb.Sheets[0][_row - 1, 1].Value = _dataSeries.Name;IList<DependencyObject> _seriesChildObject = new List<DependencyObject>();VTreeHelper.GetChildrenOfType((_dataSeries as Panel), typeof(Bar), ref _seriesChildObject);foreach (var cvl in _seriesChildObject.ToList()){wb.Sheets[0][_row, 1].Value = (cvl as Bar).DataPoint.Value;_row += 1;}}return wb; }

以上只是一個實現辦法,僅供參考。我相信程序猿們在面對不同需求時,還會有各自的修改和實現辦法。根據不同的要求,獲取不同的值。完整示例請參考如下Demo:

轉載于:https://www.cnblogs.com/C1SupportTeam/p/export-silverlight-c1chart-data-to-excel.html

總結

以上是生活随笔為你收集整理的将C1Chart数据导出到Excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。