winform问题 winform中怎样将gridview导出pdf格式文件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //1.引用 COM组件 Excel.dll public void ExportExcel(){ DataSet ds=this.DataSet;//取得dataGrid绑定的DataSet if(ds==null) return; string saveFileName=""; bool fileSaved=false; SaveFileDialog saveDialog=new SaveFileDialog(); saveDialog.DefaultExt ="xls"; saveDialog.Filter="Excel文件|*.xls"; saveDialog.FileName ="Sheet1"; saveDialog.ShowDialog(); saveFileName=saveDialog.FileName; if(saveFileName.IndexOf(":")<0) return; //被点了取消 Excel.Application xlApp=new Excel.Application(); 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 Excel.Range range; string oldCaption=this.CaptionText; long totalCount=ds.Tables[0].Rows.Count; long rowRead=0; float percent=0; worksheet.Cells[1,1]=this.CaptionText; //写入字段 for(int i=0;i<ds.Tables[0].Columns.Count;i++){ worksheet.Cells[2,i+1]=ds.Tables[0].Columns.ColumnName; range=(Excel.Range)worksheet.Cells[2,i+1]; range.Interior.ColorIndex = 15; range.Font.Bold = true; } //写入数值 this.CaptionVisible = true; for(int r=0;r<ds.Tables[0].Rows.Count;r++){ for(int i=0;i<ds.Tables[0].Columns.Count;i++){ worksheet.Cells[r+3,i+1]=ds.Tables[0].Rows[r]; } rowRead++; percent=((float)(100*rowRead))/totalCount; this.Capti+ percent.ToString("0.00") +"%]..."; Application.DoEvents(); } this.CaptionVisible = false; this.CaptionText = oldCaption; range=worksheet.get_Range(worksheet.Cells[2,1],worksheet.Cells[ds.Tables[0].Rows.Count+2,ds.Tables[0].Columns.Count]); range.BorderAround(Excel.XlLineStyle.xlContinuous,Excel.XlBorderWeight.xlThin,Excel.XlColorIndex.xlColorIndexAutomatic,null); range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic; range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle =Excel.XlLineStyle.xlContinuous; range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight =Excel.XlBorderWeight.xlThin; if(ds.Tables[0].Columns.Count>1){ range.Borders[Excel.XlBordersIndex.xlInsideVertical].ColorIndex =Excel.XlColorIndex.xlColorIndexAutomatic; range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous; range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = Excel.XlBorderWeight.xlThin; } 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(); GC.Collect();//强行销毁 if(fileSaved && File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); } http://www.codeproject.com/KB/reporting-services/ReportExporters_WinForms.aspx 求Winform控件的属性及事件的用法? 关于控件前景色 关于c/s软件设计的问题 [求助]owc图例问题 C#还原数据库报错 C/S架构客户端更新问题---大家帮忙! 软件授权方式的技术实现讨论 思路 线程返回值问题 枚举本地OPC服务器出错:检索COM类工厂中CLSID为{ DFB8323C-A952-11D2-A46B-00C04F796375} C#中一个问题 类间引用后,不能执行其方法,请指点如何调整....
//1.引用 COM组件 Excel.dll public void ExportExcel(){
DataSet ds=this.DataSet;//取得dataGrid绑定的DataSet
if(ds==null) return; string saveFileName="";
bool fileSaved=false;
SaveFileDialog saveDialog=new SaveFileDialog();
saveDialog.DefaultExt ="xls";
saveDialog.Filter="Excel文件|*.xls";
saveDialog.FileName ="Sheet1";
saveDialog.ShowDialog();
saveFileName=saveDialog.FileName;
if(saveFileName.IndexOf(":")<0) return; //被点了取消 Excel.Application xlApp=new Excel.Application(); 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
Excel.Range range; string oldCaption=this.CaptionText;
long totalCount=ds.Tables[0].Rows.Count;
long rowRead=0;
float percent=0; worksheet.Cells[1,1]=this.CaptionText;
//写入字段
for(int i=0;i<ds.Tables[0].Columns.Count;i++){
worksheet.Cells[2,i+1]=ds.Tables[0].Columns.ColumnName;
range=(Excel.Range)worksheet.Cells[2,i+1];
range.Interior.ColorIndex = 15;
range.Font.Bold = true; }
//写入数值
this.CaptionVisible = true;
for(int r=0;r<ds.Tables[0].Rows.Count;r++){
for(int i=0;i<ds.Tables[0].Columns.Count;i++){
worksheet.Cells[r+3,i+1]=ds.Tables[0].Rows[r];
}
rowRead++;
percent=((float)(100*rowRead))/totalCount;
this.Capti+ percent.ToString("0.00") +"%]...";
Application.DoEvents();
}
this.CaptionVisible = false;
this.CaptionText = oldCaption; range=worksheet.get_Range(worksheet.Cells[2,1],worksheet.Cells[ds.Tables[0].Rows.Count+2,ds.Tables[0].Columns.Count]);
range.BorderAround(Excel.XlLineStyle.xlContinuous,Excel.XlBorderWeight.xlThin,Excel.XlColorIndex.xlColorIndexAutomatic,null); range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].ColorIndex = Excel.XlColorIndex.xlColorIndexAutomatic;
range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].LineStyle =Excel.XlLineStyle.xlContinuous;
range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight =Excel.XlBorderWeight.xlThin; if(ds.Tables[0].Columns.Count>1){
range.Borders[Excel.XlBordersIndex.xlInsideVertical].ColorIndex =Excel.XlColorIndex.xlColorIndexAutomatic;
range.Borders[Excel.XlBordersIndex.xlInsideVertical].LineStyle = Excel.XlLineStyle.xlContinuous;
range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = Excel.XlBorderWeight.xlThin;
} 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();
GC.Collect();//强行销毁
if(fileSaved && File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); }