private void btnLoad_SD_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.txtHDRExcelPath.Text)) { MessageBox.Show("请选择hdr sd模型描述excel文件"); return; } if (!File.Exists(this.txtHDRExcelPath.Text)) { MessageBox.Show("hdr sd模型描述excel文件不存在"); return; } //string filePath = Path.Combine(basePath, @"..\HDR库表集合_V1.0.5-201908.xlsx"); string filePath = this.txtHDRExcelPath.Text; var inputfilename = Path.GetFileNameWithoutExtension(this.txtHDRExcelPath.Text); Workbook workbook = null; using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { workbook = new Workbook(fs); } var worksheets = workbook.Worksheets; HdrExcelProcesser hdrExcelProcesser = new HdrExcelProcesser(); List <ExcelColumn> cols = new List <ExcelColumn>(); var result = hdrExcelProcesser.ProcessSchemaSd(worksheets); cols.AddRange(result); string outfilePath = Path.Combine(basePath, $"{inputfilename}_hdrcolumns_{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx"); Workbook wb = new Workbook(); wb.Worksheets.Clear(); Worksheet sheet1 = wb.Worksheets.Add("hdr_columns"); sheet1.Cells.ImportCustomObjects(cols as ICollection, 0, 0, new ImportTableOptions { }); wb.Save(outfilePath, SaveFormat.Xlsx); using (var conn = new PostgresHelper(dbConnectionString)) { var bulkinserthelper = conn.BulkinsertHdrColumns(cols, false); } Process.Start("Explorer", "/select," + outfilePath); }