private void btnExcel_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.Title = "请选择保存位置"; sfd.Filter = "Excel文件 (*.xls)|*.xls"; if (sfd.ShowDialog() != DialogResult.OK) { return; } string fileName = sfd.FileName; try { ExcelMakerNPOI maker = new ExcelMakerNPOI(ExcelFormat.XLS); maker.CreateSheet("数据库结构检查"); DataTable dt = this.dgvData.DataSource as DataTable; //数据 maker.WriteDataToExcel(dt, 0, 0, true); //保存 maker.Save(fileName); } catch (Exception ex) { //MapSoftLog.LogError(ex.Message, ex); //MessageHandler.ShowErrorMsg(ex); MessageBox.Show(ex.ToString(), "导出失败"); return; } MessageBox.Show("导出成功"); }
private void btnSelectFile_Click(object sender, EventArgs e) { string strTitle = string.Empty; string strFilter = string.Empty; strTitle = "请选择Excel文件"; strFilter = "Excel文件(*.xls)|*.xls"; //选择Excel文件 OpenFileDialog dia = new OpenFileDialog(); dia.Title = strTitle; dia.Filter = strFilter; dia.Multiselect = false; //dia.InitialDirectory = lastSelectPath; if (dia.ShowDialog() == DialogResult.OK) { txt_filePath.Text = dia.FileName; //txtPath.Text = strSelectedPath; } ExcelMakerNPOI maker = new ExcelMakerNPOI(); if (!ExcelMakerNPOI.OpenExcel(ref maker, txt_filePath.Text)) { return; } //获取Excel表名 string[] sheetNames = maker.GetSheetNames(); if (sheetNames == null) { return; } string sheetName = sheetNames[0]; //设置当前表 maker.ActiveSheet(sheetName); //表格行列数 int rowCount = maker.RowNumbers; int columnCount = maker.ColumnNumbers; //表格数据存储至DataTable中 dt = maker.ReadExcelToDataTable(1); }
/// <summary> /// 打开Excel打开,如果被占用则提示 /// </summary> /// <param name="maker"></param> /// <param name="excelFile"></param> public static bool OpenExcel(ref ExcelMakerNPOI maker, string excelFile) { try { maker.Open(excelFile); return(true); } catch (Exception ex) { //MapSoftLog.LogError(ex.Message, ex); if (ex.Message.Contains("The process cannot access the file")) { MessageBox.Show("Excel文件已被打开,请先关闭后再操作!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { MessageBox.Show(ex.ToString()); } return(false); } }