一、单表头
1 #region 导出 2 if (this.dgvInfo.Rows.Count > 0) 3 { 4 SaveFileDialog saveFileDialog = new SaveFileDialog(); 5 saveFileDialog.DefaultExt = "xls"; 6 saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls"; 7 saveFileDialog.FilterIndex = 0; 8 saveFileDialog.FileName = "单据明细"; 9 saveFileDialog.RestoreDirectory = true; 10 saveFileDialog.CreatePrompt = true; 11 saveFileDialog.Title = "导出到EXCEL"; 12 saveFileDialog.ShowDialog(); 13 if (saveFileDialog.FileName == "") 14 return; 15 Stream myStream; 16 myStream = saveFileDialog.OpenFile(); 17 StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding(-0)); 18 string str = ""; 19 try 20 { 21 for (int i = 0; i < this.dgvInfo.ColumnCount; i++) 22 { 23 if (i > 0) 24 { 25 str += "\t"; 26 } 27 str += dgvInfo.Columns[i].HeaderText; 28 } 29 sw.WriteLine(str); 30 for (int j = 0; j < dgvInfo.Rows.Count; j++) 31 { 32 string tempStr = ""; 33 for (int k = 0; k < dgvInfo.Columns.Count; k++) 34 { 35 if (k > 0) 36 { 37 tempStr += "\t"; 38 } 39 if (dgvInfo.Rows[j].Cells[k].Value == null) 40 { 41 dgvInfo.Rows[j].Cells[k].Value = ""; 42 } 43 tempStr += dgvInfo.Rows[j].Cells[k].Value.ToString(); 44 } 45 sw.WriteLine(tempStr); 46 } 47 sw.Close(); 48 myStream.Close(); 49 } 50 catch (Exception ex) 51 { 52 MessageBox.Show(ex.ToString()); 53 } 54 finally 55 { 56 sw.Close(); 57 myStream.Close(); 58 } 59 } 60 #endregion
二、表多头
1 try 2 { 3 if (treedgv.Rows.Count > 0) 4 { 5 string sFile = System.Windows.Forms.Application.StartupPath; 6 7 //Missing 在System.Reflection命名空间下。 8 //string sFileSave = sFile + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + "一天一业绩.xls"; 9 10 SaveFileDialog saveFileDialog = new SaveFileDialog(); 11 saveFileDialog.DefaultExt = "xls"; 12 saveFileDialog.Filter = "EXCEL文件(*.XLS)|*.xls"; 13 saveFileDialog.FilterIndex = 0; 14 saveFileDialog.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "支付方式"; 15 saveFileDialog.RestoreDirectory = true; 16 saveFileDialog.CreatePrompt = true; 17 saveFileDialog.Title = "导出到EXCEL"; 18 saveFileDialog.ShowDialog(); 19 if (saveFileDialog.FileName == "") 20 return; 21 22 //需要添加 Microsoft.Office.Interop.Excel引用 23 Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); 24 25 app.Visible = false; 26 app.UserControl = true; 27 Microsoft.Office.Interop.Excel.Workbooks workbooks = app.Workbooks; 28 Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(sFile + "\\支付方式.xls"); //加载模板 29 Microsoft.Office.Interop.Excel.Sheets sheets = workbook.Sheets; 30 Microsoft.Office.Interop.Excel._Worksheet worksheet = (Microsoft.Office.Interop.Excel._Worksheet)sheets.get_Item(1); //第一个工作薄。 31 if (worksheet == null) 32 return; //工作薄中没有工作表. 33 34 ////写入数据,Excel索引从1开始。 35 36 for (int i = 1; i <= treedgv.Rows.Count; i++) 37 { 38 int row_ = 3 + i; //Excel模板上表头和标题行占了2行,根据实际模板需要修改; 39 int dt_row = i - 1; //dataTable的行是从0开始的。 40 //worksheet.Cells[row_, 1] = i.ToString(); 41 for (int j = 1; j <= treedgv.Columns.Count; j++) 42 { 43 if (treedgv.Rows[0].Cells["Column" + j].Value.ToString() != "") 44 { 45 worksheet.Cells[row_, j] = treedgv.Rows[i-1].Cells["Column" + j].Value.ToString(); 46 } 47 } 48 49 } 50 51 52 workbook.SaveAs(saveFileDialog.FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 53 54 55 workbook.Close(null, null, null); 56 workbooks.Close(); 57 worksheet = null; 58 app.Quit(); 59 app = null; 60 } 61 } 62 catch (Exception) 63 { 64 65 MessageBox.Show("导出失败!", "异常"); 66 }
时间: 2024-10-17 22:45:36