public Office文件显示(string str, CE_SystemFileType documentType) { InitializeComponent(); try { oframe.Open(@str); oframe.Menubar = false; oframe.Titlebar = false; oframe.Toolbars = false; this.oframe.ProtectDoc(1, 2, "pwd"); switch (documentType) { case CE_SystemFileType.Word: Microsoft.Office.Interop.Word.Document wordDoc = (Microsoft.Office.Interop.Word.Document)oframe.ActiveDocument; Microsoft.Office.Interop.Word.Application wordApp = wordDoc.Application; break; case CE_SystemFileType.Excel: Microsoft.Office.Interop.Excel.Workbook excelDoc = (Microsoft.Office.Interop.Excel.Workbook)oframe.ActiveDocument; Microsoft.Office.Interop.Excel.Application excelApp = excelDoc.Application; excelApp.OnKey("^x", ""); excelApp.OnKey("^c", ""); excelApp.OnKey("^v", ""); break; case CE_SystemFileType.PPT: Microsoft.Office.Interop.PowerPoint._Presentation pptDoc = (Microsoft.Office.Interop.PowerPoint._Presentation)oframe.ActiveDocument; Microsoft.Office.Interop.PowerPoint.Application pptApp = pptDoc.Application; keybd_event((byte)Keys.F5, 0, 0, 0); keybd_event((byte)Keys.F5, 0, 2, 0); break; case CE_SystemFileType.PDF: break; case CE_SystemFileType.Miss: break; default: break; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
//打开文件或文件夹 private void fileDirOpen() { string fileID = this.listView1.SelectedItems[0].SubItems[5].Text.Trim(); if (!this.listView1.SelectedItems[0].SubItems[2].Text.Trim().Equals("文件夹")) { string filePath = this.listView1.SelectedItems[0].SubItems[6].Text.Trim(); string fileType = this.listView1.SelectedItems[0].SubItems[2].Text.Trim(); CE_SystemFileType documentType = GlobalObject.GeneralFunction.GetDocumentType(fileType); string winFilePath = GlobalObject.GlobalParameter.FileTempPath + filePath.Substring(filePath.LastIndexOf(@"/") + 1) + fileType; List <CE_FileOperatorType> listType = new List <CE_FileOperatorType>(); listType.Add(CE_FileOperatorType.在线编辑); 文件操作方式 frm = new 文件操作方式(listType, null, filePath, fileType); frm.ShowDialog(); //m_serverFTP.Download(filePath, winFilePath); //GetError(); //switch (documentType) //{ // case SystemFileType.Word: // case SystemFileType.Excel: // case SystemFileType.PPT: // Office文件显示 frmOffice = new Office文件显示(winFilePath, documentType); // frmOffice.Show(); // break; // default: // 文件显示窗体 frmNormal = new 文件显示窗体(winFilePath); // frmNormal.Show(); // break; //} } else { this.m_back.Push(this.listView1.SelectedItems[0].SubItems[5].Text.Trim() + "." + this.listView1.SelectedItems[0].SubItems[7].Text.Trim()); this.listView1.Items.Clear(); currentParentID = fileID; RefreshListview(); } }
public 文件操作方式(List <CE_FileOperatorType> listShow, string filePathExternal, string filePathInternal, string fileType) { InitializeComponent(); m_filePathExternal = filePathExternal; m_filePathInternal = filePathInternal; m_fileNameSuffix = fileType.Contains(".") ? fileType : "." + fileType; m_fileType = GetDocumentType(fileType); string temp = m_filePathInternal.Substring(m_filePathInternal.LastIndexOf(@"/") + 1); m_fileName = temp.Contains(".") ? temp.Substring(0, temp.LastIndexOf(".")) : temp; m_listShow = listShow; }
/// /// DataTable转换成Excel文档流 /// /// /// static MemoryStream DatagridviewToExcel(DataGridView myDgv, CE_SystemFileType fileType) { MemoryStream ms = new MemoryStream(); IWorkbook workbook = null; ISheet sheet = null; IRow headerRow = null; try { if (fileType == CE_SystemFileType.Excel) { #region xls workbook = new HSSFWorkbook(); sheet = workbook.CreateSheet(); headerRow = sheet.CreateRow(0); // handling header. int columnIndex = 0; foreach (DataGridViewColumn column in myDgv.Columns) { if (!column.Visible) { continue; } headerRow.CreateCell(columnIndex).SetCellValue(column.HeaderText);//If Caption not set, returns the ColumnName value columnIndex++; } // handling value. HSSFCellStyle dateStyle = (HSSFCellStyle)workbook.CreateCellStyle(); HSSFDataFormat format = (HSSFDataFormat)workbook.CreateDataFormat(); dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd"); foreach (DataGridViewRow row in myDgv.Rows) { IRow dataRow = sheet.CreateRow(row.Index + 1); columnIndex = 0; foreach (DataGridViewColumn column in myDgv.Columns) { if (!column.Visible) { continue; } string drValue = myDgv.Rows[row.Index].Cells[column.Index].Value == null || !column.Visible ? "" : myDgv.Rows[row.Index].Cells[column.Index].Value.ToString(); HSSFCell newCell = (HSSFCell)dataRow.CreateCell(columnIndex); if (column.ValueType == null) { column.ValueType = typeof(string); } switch (column.ValueType.ToString()) { case "System.String"://字符串类型 newCell.SetCellValue(drValue); break; case "System.DateTime"://日期类型 DateTime dateV; DateTime.TryParse(drValue, out dateV); newCell.SetCellValue(dateV); newCell.CellStyle = dateStyle;//格式化显示 break; case "System.Boolean"://布尔型 bool boolV = false; bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); break; case "System.Int16"://整型 case "System.Int32": case "System.Int64": case "System.Byte": int intV = 0; int.TryParse(drValue, out intV); newCell.SetCellValue(intV); break; case "System.Decimal"://浮点型 case "System.Double": double doubV = 0; double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); break; case "System.DBNull"://空值处理 newCell.SetCellValue(""); break; default: newCell.SetCellValue(""); break; } columnIndex++; } } #endregion } else if (fileType == CE_SystemFileType.Excel2010) { #region xlsx workbook = new XSSFWorkbook(); sheet = workbook.CreateSheet(); headerRow = sheet.CreateRow(0); // handling header. int columnIndex = 0; foreach (DataGridViewColumn column in myDgv.Columns) { if (!column.Visible) { continue; } headerRow.CreateCell(columnIndex).SetCellValue(column.HeaderText);//If Caption not set, returns the ColumnName value columnIndex++; } // handling value. XSSFCellStyle dateStyle = (XSSFCellStyle)workbook.CreateCellStyle(); XSSFDataFormat format = (XSSFDataFormat)workbook.CreateDataFormat(); dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd"); foreach (DataGridViewRow row in myDgv.Rows) { IRow dataRow = sheet.CreateRow(row.Index + 1); columnIndex = 0; foreach (DataGridViewColumn column in myDgv.Columns) { if (!column.Visible) { continue; } string drValue = myDgv.Rows[row.Index].Cells[column.Index].Value == null || !column.Visible ? "" : myDgv.Rows[row.Index].Cells[column.Index].Value.ToString(); XSSFCell newCell = (XSSFCell)dataRow.CreateCell(columnIndex); if (column.ValueType == null) { column.ValueType = typeof(string); } switch (column.ValueType.ToString()) { case "System.String"://字符串类型 newCell.SetCellValue(drValue); break; case "System.DateTime"://日期类型 DateTime dateV; DateTime.TryParse(drValue, out dateV); newCell.SetCellValue(dateV); newCell.CellStyle = dateStyle;//格式化显示 break; case "System.Boolean"://布尔型 bool boolV = false; bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); break; case "System.Int16"://整型 case "System.Int32": case "System.Int64": case "System.Byte": int intV = 0; int.TryParse(drValue, out intV); newCell.SetCellValue(intV); break; case "System.Decimal"://浮点型 case "System.Double": double doubV = 0; double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); break; case "System.DBNull"://空值处理 newCell.SetCellValue(""); break; default: newCell.SetCellValue(""); break; } columnIndex++; } } #endregion } AutoSizeColumns(sheet); workbook.Write(ms); ms.Flush(); ms.Position = 0; return ms; } catch (Exception ex) { throw new Exception(ex.Message); } }
/// /// DataTable转换成Excel文档流 /// /// /// static MemoryStream RenderToExcel(DataTable table, CE_SystemFileType fileType) { MemoryStream ms = new MemoryStream(); using (table) { IWorkbook workbook = null; ISheet sheet = null; IRow headerRow = null; if (fileType == CE_SystemFileType.Excel) { #region xls workbook = new HSSFWorkbook(); sheet = workbook.CreateSheet(); headerRow = sheet.CreateRow(0); // handling header. foreach (DataColumn column in table.Columns) { headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);//If Caption not set, returns the ColumnName value } // handling value. int rowIndex = 1; HSSFCellStyle dateStyle = (HSSFCellStyle)workbook.CreateCellStyle(); HSSFDataFormat format = (HSSFDataFormat)workbook.CreateDataFormat(); dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd"); foreach (DataRow row in table.Rows) { IRow dataRow = sheet.CreateRow(rowIndex); foreach (DataColumn column in table.Columns) { string drValue = row[column] == null ? "" : row[column].ToString(); HSSFCell newCell = (HSSFCell)dataRow.CreateCell(column.Ordinal); switch (column.DataType.ToString()) { case "System.String"://字符串类型 newCell.SetCellValue(drValue); break; case "System.DateTime"://日期类型 DateTime dateV; DateTime.TryParse(drValue, out dateV); newCell.SetCellValue(dateV); newCell.CellStyle = dateStyle;//格式化显示 break; case "System.Boolean"://布尔型 bool boolV = false; bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); break; case "System.Int16"://整型 case "System.Int32": case "System.Int64": case "System.Byte": int intV = 0; int.TryParse(drValue, out intV); newCell.SetCellValue(intV); break; case "System.Decimal"://浮点型 case "System.Double": double doubV = 0; double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); break; case "System.DBNull"://空值处理 newCell.SetCellValue(""); break; default: newCell.SetCellValue(""); break; } } rowIndex++; } #endregion } else if (fileType == CE_SystemFileType.Excel2010) { #region xlsx workbook = new XSSFWorkbook(); sheet = workbook.CreateSheet(); headerRow = sheet.CreateRow(0); // handling header. foreach (DataColumn column in table.Columns) { headerRow.CreateCell(column.Ordinal).SetCellValue(column.Caption);//If Caption not set, returns the ColumnName value } // handling value. int rowIndex = 1; XSSFCellStyle dateStyle = (XSSFCellStyle)workbook.CreateCellStyle(); XSSFDataFormat format = (XSSFDataFormat)workbook.CreateDataFormat(); dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd"); foreach (DataRow row in table.Rows) { IRow dataRow = sheet.CreateRow(rowIndex); foreach (DataColumn column in table.Columns) { string drValue = row[column] == null ? "" : row[column].ToString(); XSSFCell newCell = (XSSFCell)dataRow.CreateCell(column.Ordinal); switch (column.DataType.ToString()) { case "System.String"://字符串类型 newCell.SetCellValue(drValue); break; case "System.DateTime"://日期类型 DateTime dateV; DateTime.TryParse(drValue, out dateV); newCell.SetCellValue(dateV); newCell.CellStyle = dateStyle;//格式化显示 break; case "System.Boolean"://布尔型 bool boolV = false; bool.TryParse(drValue, out boolV); newCell.SetCellValue(boolV); break; case "System.Int16"://整型 case "System.Int32": case "System.Int64": case "System.Byte": int intV = 0; int.TryParse(drValue, out intV); newCell.SetCellValue(intV); break; case "System.Decimal"://浮点型 case "System.Double": double doubV = 0; double.TryParse(drValue, out doubV); newCell.SetCellValue(doubV); break; case "System.DBNull"://空值处理 newCell.SetCellValue(""); break; default: newCell.SetCellValue(""); break; } } rowIndex++; } #endregion } AutoSizeColumns(sheet); workbook.Write(ms); ms.Flush(); ms.Position = 0; } return ms; }