public bool ExportAsCSV(int index, Spot spot) { this.ClearError(); Analyzer analyzer = this.GetAnalyzer(1); AnalyzeAreaSet analyzeAreaSet = this.GetAnalyzeAreaSet(index); string fileName = this.Name + "-" + analyzeAreaSet.Name + ".csv"; string file = ""; SaveFileDialog dialog = new SaveFileDialog(); dialog.FileName = fileName; dialog.Filter = "CSVファイル(*.csv)|*.csv"; dialog.Title = "保存先のファイルを選択してください"; dialog.RestoreDirectory = true; if (dialog.ShowDialog() == DialogResult.OK) { file = dialog.FileName; } else { this.SetError("出力を中断しました。"); return(false); } if (File.Exists(file)) { DialogResult result = MessageBox.Show(string.Format("'{0}' は既に存在します。\n新しいファイルに置き換えますか?", fileName), "CSVで出力", MessageBoxButtons.YesNo); if (result == DialogResult.No) { this.SetError("出力を中断しました。"); return(false); } } try { using (StreamWriter sw = new StreamWriter(file)) { string[] times = new string[this.T + 1]; string[] count473 = new string[this.T + 1]; string[] count561 = new string[this.T + 1]; string[] intDen = new string[this.T + 1]; for (int t = 1; t <= this.T; t++) { times[t] = "T" + t.ToString(); } this._WriteCSVLine(sw, times); count473[0] = "Count473"; count561[0] = "Count561"; intDen[0] = "IntDen"; int[] valueCount473 = spot._getCount473(); int[] valueCount561 = spot._getCount561(); int[] valueIntDen = spot._getIntDen(); for (int t = 1; t <= this.T; t++) { count473[t] = valueCount473[t - 1].ToString(); count561[t] = valueCount561[t - 1].ToString(); intDen[t] = valueIntDen[t - 1].ToString(); } this._WriteCSVLine(sw, count473); this._WriteCSVLine(sw, count561); this._WriteCSVLine(sw, intDen); } } catch (Exception e) { this.SetError(e.Message); return(false); } return(true); }
private void SetSpotChart() { DataGridViewRow row = dataAnalyzeAreaSets.CurrentRow; if (row == null) { return; } Cursor oldCursor = Cursor.Current; Cursor.Current = Cursors.WaitCursor; labelStatus.Text = ""; toolStripProgressBar1.Visible = true; toolStripProgressBar1.Maximum = this._Project.T; toolStripProgressBar1.Minimum = 1; AnalyzeAreaSet analyzeAreaSet = (AnalyzeAreaSet)row.DataBoundItem; chartSpot.Visible = true; chartSpot.Series.Clear(); //グラフ設定 string legend473Count = "473Count"; string legend561Count = "561Count"; string legendIntDen = "IntDen"; chartSpot.Series.Add(legend473Count); chartSpot.Series.Add(legend561Count); chartSpot.Series.Add(legendIntDen); chartSpot.Series[legend473Count].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; chartSpot.Series[legend561Count].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; chartSpot.Series[legendIntDen].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; chartSpot.Series[legend473Count].LegendText = legend473Count; chartSpot.Series[legend561Count].LegendText = legend561Count; chartSpot.Series[legendIntDen].LegendText = legendIntDen; chartSpot.Series[legend473Count].IsValueShownAsLabel = false; chartSpot.Series[legend473Count].SmartLabelStyle.Enabled = false; chartSpot.Series[legend473Count].LabelBorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; chartSpot.Series[legend473Count].LabelBorderWidth = 0; chartSpot.Series[legend473Count].LabelForeColor = Color.FromArgb(0, 0, 0, 0); chartSpot.Series[legend561Count].IsValueShownAsLabel = false; chartSpot.Series[legend561Count].SmartLabelStyle.Enabled = false; chartSpot.Series[legend561Count].LabelBorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; chartSpot.Series[legend561Count].LabelBorderWidth = 0; chartSpot.Series[legend561Count].LabelForeColor = Color.FromArgb(0, 0, 0, 0); chartSpot.Series[legendIntDen].IsValueShownAsLabel = false; chartSpot.Series[legendIntDen].SmartLabelStyle.Enabled = false; chartSpot.Series[legendIntDen].LabelBorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.NotSet; chartSpot.Series[legendIntDen].LabelBorderWidth = 0; chartSpot.Series[legendIntDen].LabelForeColor = Color.FromArgb(0, 0, 0, 0); chartSpot.Series[legendIntDen].YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary; // string[] xValues = new string[scrollT.Maximum]; int[] yValues473Count = new int[scrollT.Maximum]; int[] yValues561Count = new int[scrollT.Maximum]; int[] yValuesIntDen = new int[scrollT.Maximum]; for (int t = 1; t <= this._Project.T; t++) { xValues[t - 1] = t.ToString(); double[] spots = this._Analyzer.AnalyzeSpot(analyzeAreaSet, t, (int)nudThreshold.Value); yValues473Count[t - 1] = (int)spots[0]; yValues561Count[t - 1] = (int)spots[1]; yValuesIntDen[t - 1] = (int)spots[2]; toolStripProgressBar1.Value = t; toolStripProgressBar1.PerformStep(); } Spot spot = new Spot(); spot._setCount473(yValues473Count); spot._setCount561(yValues561Count); spot._setIntDen(yValuesIntDen); this._Spot = spot; for (int i = 0; i < xValues.Length; i++) { System.Windows.Forms.DataVisualization.Charting.DataPoint dp473Count = new System.Windows.Forms.DataVisualization.Charting.DataPoint(); System.Windows.Forms.DataVisualization.Charting.DataPoint dp561Count = new System.Windows.Forms.DataVisualization.Charting.DataPoint(); System.Windows.Forms.DataVisualization.Charting.DataPoint dpIntDen = new System.Windows.Forms.DataVisualization.Charting.DataPoint(); dp473Count.SetValueXY(xValues[i], yValues473Count[i]); dp561Count.SetValueXY(xValues[i], yValues561Count[i]); dpIntDen.SetValueXY(xValues[i], yValuesIntDen[i]); dp473Count.IsValueShownAsLabel = true; dp561Count.IsValueShownAsLabel = true; dpIntDen.IsValueShownAsLabel = true; chartSpot.Series["473Count"].Points.Add(dp473Count); chartSpot.Series["561Count"].Points.Add(dp561Count); chartSpot.Series["IntDen"].Points.Add(dpIntDen); } toolStripProgressBar1.Visible = false; Cursor.Current = oldCursor; labelStatus.Text = "解析が完了しました"; this._Flash = ""; buttonExportAsCSV.Enabled = true; }