#region 响应打印功能
private void btPrint_Click(object sender, EventArgs e)
{
print(ds);
}
#endregion
#region 得到导出数据的Excel路径 ************YRX完成
private void button1_Click(object sender, EventArgs e)
{
//打开保存对话框,得到Excel路径
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "Excel|*.xls|所有文件|*.*";
saveFileDialog1.Title = "Save an Excel File";
saveFileDialog1.ShowDialog();
//判断文件是否已经存在
string MyFileName=saveFileDialog1.FileName.ToString().Trim();
if(MyFileName.Length<1)
return;
//判断文件是否存在
if(File.Exists(MyFileName))
{
this.SaveFP2toExcel1(MyFileName,this.dsStockAccount);//不需要创建文件
}
else
{
this.SaveFP2toExcel2(MyFileName,this.dsStockAccount);//必须创建文件
}
}
#endregion
#region 写入Excel文档(不需要新建文件) ************YRX完成
/// <summary>
/// 写入Excel文档
/// </summary>
/// <param name="Path">文件名称</param>
/// <param name="ds2Excel">被导出的数据集</param>
public void SaveFP2toExcel1(string Path,DataSet ds2Excel)
{
try
{
//创建Excel应用程序
Excel.Application xApp=new Excel.ApplicationClass();
if (xApp == null)
{
MessageBox.Show("错误:Excel不能打开!");
return ;
}
//打开指定路径的Excel文件
Excel._Workbook xBook=xApp.Workbooks.Open(Path,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
Excel.Sheets xSheets=xBook.Worksheets;
Excel._Worksheet xSheet=(Excel._Worksheet) xSheets.get_Item(1);
if (xSheet == null)
{
MessageBox.Show("错误:工作表为空!");
return;
}
//写数据集表头
for(int k=0;k<ds2Excel.Tables[0].Columns.Count;k++)
xSheet.Cells[1,k+1]=ds2Excel.Tables[0].Columns[k].ColumnName.ToString().Trim();
//写数据集数据
for(int i=0;i<ds2Excel.Tables[0].Rows.Count ;i++)
{
for(int j=0;j<ds2Excel.Tables[0].Columns.Count;j++)
xSheet.Cells[i+2,j+1]=ds2Excel.Tables[0].Rows[i][j];
}
//保存文件
xBook.Save();
//显示文件
xApp.Visible = true;
//
//释放资源
//
Marshal.ReleaseComObject(xSheet) ;
xSheet=null ;
Marshal.ReleaseComObject(xSheets) ;
xSheets=null ;
Marshal.ReleaseComObject(xBook) ;
xBook=null ;
xApp.Quit();
Marshal.ReleaseComObject(xApp);
xApp = null ;
GC.Collect();//强行销毁
}
catch(Exception ex)
{
MessageBox.Show("写入Excel发生错误:"+ex.Message );
}
}
#endregion
#region 写入Excel文档(需要新建文件) ************YRX完成
/// <summary>
/// 写入Excel文档
/// </summary>
/// <param name="Path">文件名称</param>
/// <param name="ds2Excel">被导出的数据集</param>
public void SaveFP2toExcel2(string Path,DataSet ds2Excel)
{
try
{
//创建Excel应用程序
Excel.Application xApp=new Excel.ApplicationClass();
if (xApp == null)
{
MessageBox.Show("错误:Excel不能打开!");
return ;
}
object objOpt = Missing.Value;
Excel.Workbook xBook = xApp.Workbooks.Add(true) ;//添加新工作簿
Excel.Sheets xSheets = xBook.Sheets ;
Excel._Worksheet xSheet = null ;
//
//创建空的sheet
//
xSheet = (Excel._Worksheet)(xBook.Sheets.Add(objOpt,objOpt,objOpt,objOpt)) ;
if (xSheet == null)
{
MessageBox.Show("错误:工作表为空!");
return;
}
//写数据集表头
for(int k=0;k<ds2Excel.Tables[0].Columns.Count;k++)
xSheet.Cells[1,k+1]=ds2Excel.Tables[0].Columns[k].ColumnName.ToString().Trim();
//写数据集数据
for(int i=0;i<ds2Excel.Tables[0].Rows.Count ;i++)
{
for(int j=0;j<ds2Excel.Tables[0].Columns.Count;j++)
xSheet.Cells[i+2,j+1]=ds2Excel.Tables[0].Rows[i][j];
}
//保存文件
xBook.Saved = true ;
xBook.SaveCopyAs(Path) ;
//显示文件
xApp.Visible = true;
//
//释放资源
//
Marshal.ReleaseComObject(xSheet) ;
xSheet=null ;
Marshal.ReleaseComObject(xSheets) ;
xSheets=null ;
Marshal.ReleaseComObject(xBook) ;
xBook=null ;
xApp.Quit();
Marshal.ReleaseComObject(xApp);
xApp = null ;
GC.Collect();//强行销毁
}
catch(Exception ex)
{
MessageBox.Show("写入Excel发生错误:"+ex.Message );
}
}
#endregion