//public bool Save2Excel ( ) //{ // //有checknox列的,只导出那些被选择的行 // if ( _HaveSelectedCheckBox ) // { // return GRID2EXCEL.SaveToExcel ( this , GetSelectCheckBoxLine () ); // } // else // return SaveAll2Excel (); //} public bool SaveAll2Excel () { GRID2EXCEL Excel = new GRID2EXCEL (); return Excel.SaveToExcel ( this ); }
/// <summary> /// 表头行一并写在数据List中。一般写在第一行。 /// </summary> /// <param name="HeadLineNo">第几行是表头,默认是第一行.行号从0开始。</param> /// <param name="lstDate"></param> /// <param name="strDefaultFile"></param> /// <returns></returns> public bool SaveList( int nHeadLineNo, List<List<string>> lstDate, string strDefaultFile) { GRID2EXCEL grid2Excel = new GRID2EXCEL(); //定义表格内数据的行数和列数 int nRowsCount = lstDate.Count; #region 验证 if (nHeadLineNo <= 0) nHeadLineNo = 1; else if (nHeadLineNo >= lstDate.Count) nHeadLineNo = 1; else nHeadLineNo++; int nMaxColCount = GetMaxColCount(lstDate); if (nRowsCount <= 0 || nMaxColCount <= 0) { MessageBox.Show("没有可以导出的数据!", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } //行数不可以大于65536 if (nRowsCount > 65536) { MessageBox.Show("数据记录数太多(最多不能超过65536条),不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } //列数不可以大于255 if (nMaxColCount > 255) { MessageBox.Show("数据记录行数太多,不能保存 ", "提示 ", MessageBoxButtons.OK, MessageBoxIcon.Information); return false; } #endregion //获取输出Excel文件名 string strOutFileName = grid2Excel.GetExportFile(strDefaultFile); if (String.IsNullOrEmpty(strOutFileName)) return false; try { OpenExcel(); //设置Excel列表头 int nHeadColCount = lstDate[nHeadLineNo - 1].Count; //nHeadLineNo原来从0开始的,后来被加了1改为Excel计数方式的行数. CreateExcelHead( nHeadLineNo, nHeadColCount ); //向Excel中逐行逐列写入表格中的数据 int nExcelCol, nExcelRow = 1; //Execl的行都从1开始起算。 for (int i = 0; i < nRowsCount; i++) { nExcelCol = 1; //Execl的列都从1开始起算。 for (int j = 0; j < lstDate[i].Count; j++) { try { objExcel.Cells[nExcelRow, nExcelCol++] = lstDate[i][j].Trim(); } catch (Exception) { return false; } } nExcelRow ++; } //保存文件 objWorkbook.SaveAs(strOutFileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Excel.XlSaveAsAccessMode.xlShared, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); } catch (Exception ex) { FF.Ctrl.MsgBox.ShowWarn(ex.Message); return false; } finally { CloseExcel(); } FF.Ctrl.MsgBox.Show(strOutFileName + "\n\n导出完毕! "); return true; }
public bool Save2Excel () { //有checknox列的,只导出那些被选择的行 if ( _HaveSelectedCheckBox ) { GRID2EXCEL Excel = new GRID2EXCEL (); return Excel.SaveToExcel ( this , GetSelectCheckBoxLine () ); } else return SaveAll2Excel (); }