导线读取文件优化

 public void Txt(string path)
            {
          string[]data=  File.ReadAllLines(path);
            this.listBox1.SelectedIndex = Convert.ToInt32(data[10]) - 1;//导线类型
            this.listBox2.SelectedIndex = Convert.ToInt32(data[14]) - 1;//角度类型
            //导入坐标
            int i= 0;
            int k = 1;
            int j = 0;
            foreach(DataGridViewRow rows in this.dataGridView2.Rows)
            {
                rows.Cells[0].Value = data[13].Split(',')[i];
                rows.Cells[1].Value = data[13].Split(',')[k];
                i += 2;
                k += 2;
            }
            this.dataGridView1.RowCount = data[15].Split(',').Length;
            foreach (DataGridViewRow rows in this.dataGridView1.Rows)
            {
                try
                {
                    rows.Cells[0].Value = data[15].Split(',')[j];
                    rows.Cells[1].Value = data[16].Split(',')[j];
                }
                catch
                {
                    break;
                }
                j++;
            }
            }
        public void Xls(string path)
        {          
            // 创建 Excel 应用程序对象
            Excel.Application excelApp = new Excel.Application();
            excelApp.DisplayAlerts = false; // 禁用警告框显示
            // 打开 XLS 文件
            Excel.Workbook workbook = excelApp.Workbooks.Open(path);
            // 获取第一个工作表
            Excel.Worksheet worksheet = workbook.Sheets[1]; // 或者 workbook.Worksheets[1]
            // 获取使用的范围
            Excel.Range usedRange = worksheet.UsedRange;
          this.listBox1.SelectedIndex = (worksheet.Cells[1,2].Value?.ToString() == "附和导线" ? 0 : 1); //导线类型
            if (listBox1.SelectedIndex == 0)//附和
            {
                this.listBox2.SelectedIndex = (worksheet.Cells[8, 2].Value?.ToString() == "左角" ? 0 : 1); //导线类型
                // 遍历行\
                dataGridView2.Rows.Clear();
                for (int i = 4; i <8; i++)//附和4个点,数量固定
                {                    
                    dataGridView2.Rows.Add(worksheet.Cells[i, 2].Value?.ToString(), worksheet.Cells[i, 3].Value?.ToString());
                }
                int usedcount = usedRange.Rows.Count - 12;//附和数据有效长度
                for (int i=12;i<usedcount+12;i++)
                {
                    dataGridView1.Rows.Add(worksheet.Cells[i, 2].Value?.ToString(), worksheet.Cells[i, 3].Value?.ToString());
                }
            }
            else
            {
                this.listBox2.SelectedIndex = (worksheet.Cells[6, 2].Value?.ToString() == "左角" ? 0 : 1); //导线类型
                dataGridView2.Rows.Clear();                                                                                      // 遍历行
                for (int i = 4; i < 6; i++)//闭合2个点,数量固定
                {                  
                    dataGridView2.Rows.Add(worksheet.Cells[i, 2].Value?.ToString(), worksheet.Cells[i, 3].Value?.ToString());
                }
                int usedcount = usedRange.Rows.Count - 12;//闭合数据有效长度
                for (int i = 10; i < 10+usedcount; i++)
                {
                    dataGridView1.Rows.Add(worksheet.Cells[i, 2].Value?.ToString(), worksheet.Cells[i, 3].Value?.ToString());
                }
            }

         
                // 关闭 Excel 应用程序对象
                workbook.Close();
            excelApp.Quit();
        }
  private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(this.listBox1.SelectedIndex==0)
            {
                dataGridView2.RowCount = 4;
            }
            else
            {
                dataGridView2.RowCount = 2;
            }
        }
      

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.dataGridView2.RowCount = 4;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值