| | |
| | | public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); |
| | | public static void DataToExcel(string sText, DataGridView grdMain) |
| | | { |
| | | string saveFileName = ""; |
| | | bool fileSaved = false; |
| | | SaveFileDialog saveDialog = new SaveFileDialog(); |
| | | Excel.Application xlApp = new Excel.Application(); |
| | | if (Convert.ToDouble(xlApp.Version) < 12) |
| | | //string saveFileName = ""; |
| | | //bool fileSaved = false; |
| | | //SaveFileDialog saveDialog = new SaveFileDialog(); |
| | | //Excel.Application xlApp = new Excel.Application(); |
| | | //if (Convert.ToDouble(xlApp.Version) < 12) |
| | | //{ |
| | | // saveDialog.DefaultExt = "xls"; |
| | | // saveDialog.Filter = "Excelæä»¶|*.xls"; |
| | | //} |
| | | //else |
| | | //{ |
| | | // saveDialog.DefaultExt = "xlsx"; |
| | | // saveDialog.Filter = "Excelæä»¶|*.xlsx"; |
| | | //} |
| | | //saveDialog.FileName = sText; |
| | | //saveDialog.ShowDialog(); |
| | | //saveFileName = saveDialog.FileName; |
| | | //if (saveFileName.IndexOf(":") < 0) return; //被ç¹äºåæ¶ |
| | | //// |
| | | |
| | | //if (xlApp == null) |
| | | //{ |
| | | // MessageBox.Show("æ æ³å建Excelæä»¶ï¼å¯è½æ¨ççµèæªå®è£
Excel", "æç¤º"); |
| | | // return; |
| | | //} |
| | | |
| | | //Excel.Workbooks workbooks = xlApp.Workbooks; |
| | | //Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); |
| | | //Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//åå¾sheet1 |
| | | ////åå
¥ æ é¢ |
| | | //for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | //{ |
| | | // worksheet.Cells[1, i + 1] = ClsPub.isStrNull(grdMain.Columns[i].HeaderText); |
| | | //} |
| | | ////åå
¥å
容 |
| | | //for (int r = 0; r < grdMain.RowCount; r++) |
| | | //{ |
| | | // for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | // { |
| | | // worksheet.Cells[r + 2, i + 1] = "'" + ClsPub.isStrNull(grdMain.Rows[r].Cells[i].Value); |
| | | // } |
| | | // System.Windows.Forms.Application.DoEvents(); |
| | | //} |
| | | //worksheet.Columns.EntireColumn.AutoFit();//å宽èªéåºã |
| | | //if (saveFileName != "") |
| | | //{ |
| | | // try |
| | | // { |
| | | // workbook.Saved = true; |
| | | // workbook.SaveCopyAs(saveFileName); |
| | | // fileSaved = true; |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // fileSaved = false; |
| | | // MessageBox.Show( "å¯¼åºæä»¶æ¶åºé,æä»¶å¯è½æ£è¢«æå¼ï¼\n" + ex.Message, "æç¤º"); |
| | | // } |
| | | //} |
| | | //else |
| | | //{ |
| | | // fileSaved = false; |
| | | //} |
| | | //xlApp.Quit(); |
| | | //// |
| | | //IntPtr t = new IntPtr(xlApp.Hwnd); //å¾å°è¿ä¸ªå¥æï¼å
·ä½ä½ç¨æ¯å¾å°è¿åå
åå
¥å£ |
| | | //int k = 0; |
| | | //GetWindowThreadProcessId(t, out k); //å¾å°æ¬è¿ç¨å¯ä¸æ å¿k |
| | | //System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //å¾å°å¯¹è¿ç¨kçå¼ç¨ |
| | | //p.Kill(); //å
³éè¿ç¨k |
| | | //xlApp = null; |
| | | ////GC.Collect();//强è¡éæ¯ |
| | | ////if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //æå¼EXCEL |
| | | //MessageBox.Show("å¼åºå®æ¯ï¼"); |
| | | SaveFileDialog saveFileDialog = new SaveFileDialog(); |
| | | saveFileDialog.Filter = "Execlæä»¶(*.xls)|*.xls"; |
| | | saveFileDialog.FilterIndex = 0; |
| | | saveFileDialog.RestoreDirectory = true; |
| | | saveFileDialog.CreatePrompt = true; |
| | | saveFileDialog.Title = "æ°æ®è§å¾å¯¼åºEXCELæä»¶"; |
| | | saveFileDialog.ShowDialog(); |
| | | if (saveFileDialog.FileName == "") |
| | | { |
| | | saveDialog.DefaultExt = "xls"; |
| | | saveDialog.Filter = "Excelæä»¶|*.xls"; |
| | | } |
| | | else |
| | | { |
| | | saveDialog.DefaultExt = "xlsx"; |
| | | saveDialog.Filter = "Excelæä»¶|*.xlsx"; |
| | | } |
| | | saveDialog.FileName = sText; |
| | | saveDialog.ShowDialog(); |
| | | saveFileName = saveDialog.FileName; |
| | | if (saveFileName.IndexOf(":") < 0) return; //被ç¹äºåæ¶ |
| | | // |
| | | |
| | | if (xlApp == null) |
| | | { |
| | | MessageBox.Show("æ æ³å建Excelæä»¶ï¼å¯è½æ¨ççµèæªå®è£
Excel", "æç¤º"); |
| | | return; |
| | | } |
| | | |
| | | Excel.Workbooks workbooks = xlApp.Workbooks; |
| | | Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); |
| | | Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//åå¾sheet1 |
| | | //åå
¥ æ é¢ |
| | | for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | Stream myStream; |
| | | myStream = saveFileDialog.OpenFile(); |
| | | StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312")); |
| | | string str = ""; |
| | | DateTime start = DateTime.Now; |
| | | try |
| | | { |
| | | worksheet.Cells[1, i + 1] = ClsPub.isStrNull(grdMain.Columns[i].HeaderText); |
| | | } |
| | | //åå
¥å
容 |
| | | for (int r = 0; r < grdMain.RowCount; r++) |
| | | { |
| | | //åæ é¢ |
| | | for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | { |
| | | worksheet.Cells[r + 2, i + 1] = "'" + ClsPub.isStrNull(grdMain.Rows[r].Cells[i].Value); |
| | | if (i > 0) |
| | | { |
| | | str += "\t"; |
| | | } |
| | | str += grdMain.Columns[i].HeaderText; |
| | | } |
| | | System.Windows.Forms.Application.DoEvents(); |
| | | } |
| | | worksheet.Columns.EntireColumn.AutoFit();//å宽èªéåºã |
| | | if (saveFileName != "") |
| | | { |
| | | try |
| | | sw.WriteLine(str); |
| | | |
| | | //åå
容 |
| | | for (int j = 0; j < grdMain.Rows.Count; j++) |
| | | { |
| | | workbook.Saved = true; |
| | | workbook.SaveCopyAs(saveFileName); |
| | | fileSaved = true; |
| | | string tempStr = ""; |
| | | for (int k = 0; k < grdMain.Columns.Count; k++) |
| | | { |
| | | if (k > 0) |
| | | { |
| | | tempStr += "\t"; |
| | | } |
| | | if (grdMain.Rows[j].Cells[k].Value == null) |
| | | { |
| | | tempStr += string.Empty; |
| | | } |
| | | else |
| | | { |
| | | tempStr += grdMain.Rows[j].Cells[k].Value.ToString().Replace("\"", "â"); |
| | | } |
| | | } |
| | | sw.WriteLine(tempStr); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | fileSaved = false; |
| | | MessageBox.Show( "å¯¼åºæä»¶æ¶åºé,æä»¶å¯è½æ£è¢«æå¼ï¼\n" + ex.Message, "æç¤º"); |
| | | } |
| | | sw.Close(); |
| | | myStream.Close(); |
| | | } |
| | | else |
| | | catch (Exception ex) |
| | | { |
| | | fileSaved = false; |
| | | MessageBox.Show(ex.Message); |
| | | } |
| | | xlApp.Quit(); |
| | | // |
| | | IntPtr t = new IntPtr(xlApp.Hwnd); //å¾å°è¿ä¸ªå¥æï¼å
·ä½ä½ç¨æ¯å¾å°è¿åå
åå
¥å£ |
| | | int k = 0; |
| | | GetWindowThreadProcessId(t, out k); //å¾å°æ¬è¿ç¨å¯ä¸æ å¿k |
| | | System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //å¾å°å¯¹è¿ç¨kçå¼ç¨ |
| | | p.Kill(); //å
³éè¿ç¨k |
| | | xlApp = null; |
| | | //GC.Collect();//强è¡éæ¯ |
| | | //if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //æå¼EXCEL |
| | | MessageBox.Show("å¼åºå®æ¯ï¼"); |
| | | finally |
| | | { |
| | | sw.Close(); |
| | | myStream.Close(); |
| | | } |
| | | MessageBox.Show("å°æ¤å·¥ä½è¡¨å¯¼åºä¸ºexcelå
±èæ¶ï¼" + DateTime.Now.Subtract(start).TotalMilliseconds.ToString() + "毫ç§"); |
| | | } |
| | | |
| | | |
| | |
| | | //导åºéä¸å |
| | | public static void Data2Excel(string sText, DataGridView grdMain, string KeyItem) |
| | | { |
| | | string saveFileName = ""; |
| | | bool fileSaved = false; |
| | | List<string> hide = GetGridViewHide(grdMain, KeyItem); |
| | | if(hide.Count == 0) |
| | | { |
| | | DataToExcel(sText, grdMain); |
| | | return; |
| | | } |
| | | SaveFileDialog saveDialog = new SaveFileDialog(); |
| | | Excel.Application xlApp = new Excel.Application(); |
| | | if (xlApp == null) |
| | | { |
| | | MessageBox.Show("æ æ³å建Excelæä»¶ï¼å¯è½æ¨ççµèæªå®è£
Excel", "æç¤º"); |
| | | return; |
| | | } |
| | | string av = xlApp.Version; |
| | | if (Convert.ToDouble(xlApp.Version) < 12) |
| | | { |
| | | saveDialog.DefaultExt = "xls"; |
| | | saveDialog.Filter = "Excelæä»¶|*.xls"; |
| | | } |
| | | else |
| | | { |
| | | saveDialog.DefaultExt = "xlsx"; |
| | | saveDialog.Filter = "Excelæä»¶|*.xlsx"; |
| | | } |
| | | saveDialog.FileName = sText; |
| | | saveDialog.ShowDialog(); |
| | | saveFileName = saveDialog.FileName; |
| | | if (saveFileName.IndexOf(":") < 0) return; //被ç¹äºåæ¶ |
| | | |
| | | //string saveFileName = ""; |
| | | //bool fileSaved = false; |
| | | //List<string> hide = GetGridViewHide(grdMain, KeyItem); |
| | | //if(hide.Count == 0) |
| | | //{ |
| | | // DataToExcel(sText, grdMain); |
| | | // return; |
| | | //} |
| | | //SaveFileDialog saveDialog = new SaveFileDialog(); |
| | | //Excel.Application xlApp = new Excel.Application(); |
| | | //if (xlApp == null) |
| | | //{ |
| | | // MessageBox.Show("æ æ³å建Excelæä»¶ï¼å¯è½æ¨ççµèæªå®è£
Excel", "æç¤º"); |
| | | // return; |
| | | //} |
| | | // string av = xlApp.Version; |
| | | // if (Convert.ToDouble(xlApp.Version) < 12) |
| | | // { |
| | | // saveDialog.DefaultExt = "xls"; |
| | | // saveDialog.Filter = "Excelæä»¶|*.xls"; |
| | | // } |
| | | // else |
| | | // { |
| | | // saveDialog.DefaultExt = "xlsx"; |
| | | // saveDialog.Filter = "Excelæä»¶|*.xlsx"; |
| | | // } |
| | | //saveDialog.FileName = sText; |
| | | //saveDialog.ShowDialog(); |
| | | //saveFileName = saveDialog.FileName; |
| | | //if (saveFileName.IndexOf(":") < 0) return; //被ç¹äºåæ¶ |
| | | |
| | | |
| | | Excel.Workbooks workbooks = xlApp.Workbooks; |
| | | Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); |
| | | Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1]; //åå¾sheet1 |
| | | //åå
¥ æ é¢ |
| | | for (int i = 0; i < hide.Count; i++) |
| | | { |
| | | worksheet.Cells[1, i + 1] = hide[i]; |
| | | } |
| | | |
| | | for (int r = 0; r < grdMain.RowCount; r++) |
| | | { |
| | | for (int i = 0; i < hide.Count; i++) |
| | | { |
| | | |
| | | worksheet.Cells[r + 2, i + 1] = "" + ClsPub.isStrNull(grdMain.Rows[r].Cells[DBUtility.Gy_BaseFun.Fun_GetCol(hide[i], grdMain)].Value); |
| | | //worksheet.Cells[r + 2, i + 1] = grdMain.Rows[r].Cells[DBUtility.Gy_BaseFun.Fun_GetCol(hide[i], grdMain)].Value; |
| | | } |
| | | System.Windows.Forms.Application.DoEvents(); |
| | | } |
| | | |
| | | //Excel.Workbooks workbooks = xlApp.Workbooks; |
| | | //Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); |
| | | //Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1]; //åå¾sheet1 |
| | | ////åå
¥ æ é¢ |
| | | //for (int i = 0; i < hide.Count; i++) |
| | | //{ |
| | | // worksheet.Cells[1, i + 1] = hide[i]; |
| | | //} |
| | | |
| | | //for (int r = 0; r < grdMain.RowCount; r++) |
| | | //{ |
| | | // for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | // for (int i = 0; i < hide.Count; i++) |
| | | // { |
| | | // worksheet.Cells[r + 2, i + 1] = "'" + ClsPub.isStrNull(grdMain.Rows[r].Cells[i].Value); |
| | | |
| | | // worksheet.Cells[r + 2, i + 1] = "" + ClsPub.isStrNull(grdMain.Rows[r].Cells[DBUtility.Gy_BaseFun.Fun_GetCol(hide[i], grdMain)].Value); |
| | | // //worksheet.Cells[r + 2, i + 1] = grdMain.Rows[r].Cells[DBUtility.Gy_BaseFun.Fun_GetCol(hide[i], grdMain)].Value; |
| | | // } |
| | | // System.Windows.Forms.Application.DoEvents(); |
| | | //} |
| | | |
| | | ////for (int r = 0; r < grdMain.RowCount; r++) |
| | | ////{ |
| | | //// for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | //// { |
| | | //// worksheet.Cells[r + 2, i + 1] = "'" + ClsPub.isStrNull(grdMain.Rows[r].Cells[i].Value); |
| | | //// } |
| | | //// System.Windows.Forms.Application.DoEvents(); |
| | | ////} |
| | | |
| | | worksheet.Columns.EntireColumn.AutoFit();//å宽èªéåºã |
| | | if (saveFileName != "") |
| | | |
| | | //worksheet.Columns.EntireColumn.AutoFit();//å宽èªéåºã |
| | | //if (saveFileName != "") |
| | | //{ |
| | | // try |
| | | // { |
| | | // workbook.Saved = true; |
| | | // workbook.SaveCopyAs(saveFileName); |
| | | // fileSaved = true; |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // fileSaved = false; |
| | | // MessageBox.Show("å¯¼åºæä»¶æ¶åºé,æä»¶å¯è½æ£è¢«æå¼ï¼\n" + ex.Message, "æç¤º"); |
| | | // } |
| | | //} |
| | | //else |
| | | //{ |
| | | // fileSaved = false; |
| | | //} |
| | | //xlApp.Quit(); |
| | | //// |
| | | //IntPtr t = new IntPtr(xlApp.Hwnd); //å¾å°è¿ä¸ªå¥æï¼å
·ä½ä½ç¨æ¯å¾å°è¿åå
åå
¥å£ |
| | | //int k = 0; |
| | | //GetWindowThreadProcessId(t, out k); //å¾å°æ¬è¿ç¨å¯ä¸æ å¿k |
| | | //System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //å¾å°å¯¹è¿ç¨kçå¼ç¨ |
| | | //p.Kill(); //å
³éè¿ç¨k |
| | | //xlApp = null; |
| | | ////GC.Collect();//强è¡éæ¯ |
| | | ////if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //æå¼EXCEL |
| | | //MessageBox.Show("å¼åºå®æ¯ï¼"); |
| | | SaveFileDialog saveFileDialog = new SaveFileDialog(); |
| | | saveFileDialog.Filter = "Execlæä»¶(*.xls)|*.xls"; |
| | | saveFileDialog.FilterIndex = 0; |
| | | saveFileDialog.RestoreDirectory = true; |
| | | saveFileDialog.CreatePrompt = true; |
| | | saveFileDialog.Title = "æ°æ®è§å¾å¯¼åºEXCELæä»¶"; |
| | | saveFileDialog.ShowDialog(); |
| | | if (saveFileDialog.FileName == "") |
| | | { |
| | | try |
| | | { |
| | | workbook.Saved = true; |
| | | workbook.SaveCopyAs(saveFileName); |
| | | fileSaved = true; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | fileSaved = false; |
| | | MessageBox.Show("å¯¼åºæä»¶æ¶åºé,æä»¶å¯è½æ£è¢«æå¼ï¼\n" + ex.Message, "æç¤º"); |
| | | } |
| | | return; |
| | | } |
| | | else |
| | | Stream myStream; |
| | | myStream = saveFileDialog.OpenFile(); |
| | | StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312")); |
| | | string str = ""; |
| | | DateTime start = DateTime.Now; |
| | | try |
| | | { |
| | | fileSaved = false; |
| | | //åæ é¢ |
| | | for (int i = 0; i < grdMain.ColumnCount; i++) |
| | | { |
| | | if (i > 0) |
| | | { |
| | | str += "\t"; |
| | | } |
| | | str += grdMain.Columns[i].HeaderText; |
| | | } |
| | | sw.WriteLine(str); |
| | | |
| | | //åå
容 |
| | | for (int j = 0; j < grdMain.Rows.Count; j++) |
| | | { |
| | | string tempStr = ""; |
| | | for (int k = 0; k < grdMain.Columns.Count; k++) |
| | | { |
| | | if (k > 0) |
| | | { |
| | | tempStr += "\t"; |
| | | } |
| | | if (grdMain.Rows[j].Cells[k].Value == null) |
| | | { |
| | | tempStr += string.Empty; |
| | | } |
| | | else |
| | | { |
| | | tempStr += grdMain.Rows[j].Cells[k].Value.ToString().Replace("\"", "â"); |
| | | } |
| | | } |
| | | sw.WriteLine(tempStr); |
| | | } |
| | | sw.Close(); |
| | | myStream.Close(); |
| | | } |
| | | xlApp.Quit(); |
| | | // |
| | | IntPtr t = new IntPtr(xlApp.Hwnd); //å¾å°è¿ä¸ªå¥æï¼å
·ä½ä½ç¨æ¯å¾å°è¿åå
åå
¥å£ |
| | | int k = 0; |
| | | GetWindowThreadProcessId(t, out k); //å¾å°æ¬è¿ç¨å¯ä¸æ å¿k |
| | | System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //å¾å°å¯¹è¿ç¨kçå¼ç¨ |
| | | p.Kill(); //å
³éè¿ç¨k |
| | | xlApp = null; |
| | | //GC.Collect();//强è¡éæ¯ |
| | | //if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //æå¼EXCEL |
| | | MessageBox.Show("å¼åºå®æ¯ï¼"); |
| | | catch (Exception ex) |
| | | { |
| | | MessageBox.Show(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | sw.Close(); |
| | | myStream.Close(); |
| | | } |
| | | MessageBox.Show("å°æ¤å·¥ä½è¡¨å¯¼åºä¸ºexcelå
±èæ¶ï¼" + DateTime.Now.Subtract(start).TotalMilliseconds.ToString() + "毫ç§"); |
| | | } |
| | | |
| | | |