ClosedXML C#简单导入导出功能WPF

ClosedXML C#简单导入导出功能WPF

引用包Install-Package ClosedXML
代码示例

 public RelayCommand ExportExcelCmd => new RelayCommand(() =>
 {
     try
     {
         var saveFileDialog = new SaveFileDialog
         {
             Filter = "Excel files (*.xlsx)|*.xlsx",
             DefaultExt = "xlsx",
             FileName = "CCD参数列表导出_" + System.DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx"
         };
         if (saveFileDialog.ShowDialog() == true)
         {
             var filePath = saveFileDialog.FileName;

             // ✅ 使用 ClosedXML 进行导出
             using (var workbook = new ClosedXML.Excel.XLWorkbook())
             {
                 var worksheet = workbook.Worksheets.Add("参数列表");

                 // 表头
                 worksheet.Cell(1, 1).Value = "参数名";
                 worksheet.Cell(1, 2).Value = "地址";
                 worksheet.Cell(1, 3).Value = "当前配方值";
                 worksheet.Cell(1, 4).Value = "保存到配方的值";

                 var list = this._SavePLCParams;
                 if (list == null || !list.Any())
                 {
                     MessageBox.Show("数据列表为空,无法导出");
                     return;
                 }

                 // 填充数据(从第2行开始)
                 for (int i = 0; i < list.Count; i++)
                 {
                     var item = list[i];
                     worksheet.Cell(i + 2, 1).Value = item.Name;
                     worksheet.Cell(i + 2, 2).Value = item.Address;
                     worksheet.Cell(i + 2, 3).Value = item.AddressValue;
                     worksheet.Cell(i + 2, 4).Value = item.DefaultValue;
                 }

                 // 自动调整列宽
                 worksheet.Columns().AdjustToContents();

                 // 保存文件
                 workbook.SaveAs(filePath);
             }

             MessageBox.Show("导出成功!");
         }
     }
     catch (System.Exception ex)
     {
         MessageBox.Show("导出失败:" + ex.Message);
     }
 });
 public RelayCommand ImportExcelCmd => new RelayCommand(() =>
 {
     try
     {
         var openFileDialog = new OpenFileDialog
         {
             Filter = "Excel files (*.xlsx)|*.xlsx",
             Multiselect = false
         };

         if (openFileDialog.ShowDialog() == true)
         {
             var filePath = openFileDialog.FileName;

             using (var workbook = new ClosedXML.Excel.XLWorkbook(filePath))
             {
                 var worksheet = workbook.Worksheet(1); 
                 int rowCount = worksheet.RangeUsed().RowCount(); 
                 var importedData = new System.Collections.Generic.List<BaseAddressDto>();
                 for (int row = 2; row <= rowCount; row++)
                 {
                     var name = worksheet.Cell(row, 1).GetString();
                     var address = worksheet.Cell(row, 2).GetString();
                     var addressValue = worksheet.Cell(row, 3).GetString();
                     var defaultValue = worksheet.Cell(row, 4).GetString();

                     var item = new BaseAddressDto
                     {
                         Name = name ?? "",
                         Address = address ?? "",
                         AddressValue = addressValue ?? "",
                         DefaultValue = defaultValue ?? ""
                     };

                     importedData.Add(item);
                 }

                 this._SavePLCParams = new ObservableCollection<BaseAddressDto>(importedData);
             }

             MessageBox.Show("导入成功!");
         }
     }
     catch (System.Exception ex)
     {
         MessageBox.Show("导入失败:" + ex.Message);
     }
 });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值