Shuxia Ning
2025-01-17 a0bce3b366451b3ca94e676eb98dd7b415375c14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
using DevExpress.Export;
using DevExpress.Spreadsheet;
using DevExpress.XtraEditors;
using DevExpress.XtraSpreadsheet;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Yw.WinFrmUI.Phart
{
    public partial class ClipboardCurveExcelDlg : XtraForm
    {
        public ClipboardCurveExcelDlg()
        {
            InitializeComponent();
 
            this.spreadsheetControl1.Options.TabSelector.Visibility = DevExpress.XtraSpreadsheet.SpreadsheetElementVisibility.Hidden;
            this.spreadsheetControl1.Options.View.Charts.Antialiasing = DevExpress.XtraSpreadsheet.DocumentCapability.Enabled;
            this.spreadsheetControl1.Options.View.Charts.TextAntialiasing = DevExpress.XtraSpreadsheet.DocumentCapability.Enabled;
            this.spreadsheetControl1.Options.View.ShowColumnHeaders = false;
            this.spreadsheetControl1.Options.View.ShowPrintArea = false;
            this.spreadsheetControl1.Options.View.ShowRowHeaders = false;
            LimitToTwoColumns();
 
        }
 
        /// <summary>
        /// 限制 SpreadsheetControl 只能有两列(A 和 B)
        /// </summary>
        private void LimitToTwoColumns()
        {
            Worksheet worksheet = this.spreadsheetControl1.Document.Worksheets[0];
 
            // 隐藏从 C 列开始的所有列
            for (int col = 3; col <= worksheet.Columns.LastUsedIndex + 1; col++)
            {
                worksheet.Columns[col].Visible = false;
            }
 
            // 禁用列插入和删除
            //this.spreadsheetControl1.Options.Behavior.allow = false;
            //this.spreadsheetControl1.Options.Behavior.ColumnDelete = false;
 
            //// 禁用列调整宽度
            //this.spreadsheetControl1.Options.Behavior..ColumnResize = false;
    
            // 设置列宽
            worksheet.Columns["A"].WidthInPixels = 100;
            worksheet.Columns["B"].WidthInPixels = 100;
 
            // 保护工作表,防止用户修改列或行
            worksheet.Protect("password", WorksheetProtectionPermissions.Default);
        }
 
        private void btnOk_Click(object sender, EventArgs e)
        {
        
            var data = new List<(double, double)>();
            Worksheet worksheet = this.spreadsheetControl1.Document.Worksheets.ActiveWorksheet;
 
            int rowCount = worksheet.Rows.LastUsedIndex + 1;
 
            for (int row = 0; row < rowCount; row++)
            { 
                double value1 = worksheet.Columns[0][row].Value.NumericValue;
                double value2 = worksheet.Columns[1][row].Value.NumericValue;
                data.Add((value1, value2));
            }
 
            var a = data;
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
 
 
    }
}