问题:我现在要用一个winform程序将一张本地的excel表A中的数据(多行)遍历的读出,且读出的每行生成一个独立的excel表.然后再将这些个表挨个的附加到outlook中,通过邮件地址发出去.
貌似很复杂
给你一段操作excel的代码 自己研究一下吧,自己在网上搜一段发邮件的c#代码; public static bool ExportForDataGridview(DataGridView gridView, string fileName, bool isShowExcle) { //建立Excel对象 Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); try { if (app == null) { return false; }
app.Visible = isShowExcle; Workbooks workbooks = app.Workbooks; _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); //_Workbook workbook1 = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
//workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); //_Worksheet worksheet. Sheets sheets = workbook.Worksheets; _Worksheet worksheet = (_Worksheet)sheets.get_Item(1); //_Worksheet worksheet = (_Worksheet)sheets.Item(1); if (worksheet == null) { return false; } string sLen = ""; //取得最后一列列名 char H = (char)(64 + gridView.ColumnCount / 26); char L = (char)(64 + gridView.ColumnCount % 26); if (gridView.ColumnCount < 26) { sLen = L.ToString(); } else { sLen = H.ToString() + L.ToString(); } //标题 string sTmp = sLen + "1"; Range ranCaption = worksheet.get_Range(sTmp, "A1"); string[] asCaption = new string[gridView.ColumnCount]; for (int i = 0; i < gridView.ColumnCount; i++) { asCaption[i] = gridView.Columns[i].HeaderText; } ranCaption.Value2 = asCaption;
//数据 object[] obj = new object[gridView.Columns.Count]; for (int r = 0; r < gridView.RowCount; r++) { for (int l = 0; l < gridView.Columns.Count; l++) { if (gridView[l, r].ValueType == typeof(DateTime)) { obj[l] = gridView[l, r].Value.ToString(); } else { obj[l] = gridView[l, r].Value; } } string cell1 = sLen + ((int)(r + 2)).ToString(); string cell2 = "A" + ((int)(r + 2)).ToString(); Range ran = worksheet.get_Range(cell1, cell2); ran.Value2 = obj; } //保存 if (!isShowExcle) { workbook.Password = "18356771"; } workbook.SaveCopyAs(fileName); //workbook.SaveAs(fileName, ".xls", "18356771", false, false, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, false, false, false, false); workbook.Saved = true; } finally { //关闭 app.UserControl = false; app.Quit(); } return true;
} 如果你对我现在要用一个winform程序将一张本地的excel表A中的数据(多行)遍历的读出,且读出的每行生成一个独立的excel表.然后再将这些个表挨个的附加到outlook中,通过邮件地址发出去.这个问题有好的意见或
建议,请留言
|