c#导出到excel

摘要:
如果(cmbxType.Text!=“通知”){Excel.Ranger=worksheet.get_Range(worksheet.Cells[2,2],worksheet.Cells[ds.Tables[0]。Rows.Count+1,2]);rg.NumberFormat=“00000000”;}如果(saveFileName!

  //导出Excel的方法
  private void ExportExcel()
  {
   DataSet ds=dtsSelect;//数据源
   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
   //写入字段
   for(int i=0;i<ds.Tables[0].Columns.Count;i++)
   {
    worksheet.Cells[1,i+1]=ds.Tables[0].Columns[i].ColumnName;
   }
   //写入数值
   
   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+2,i+1]=ds.Tables[0].Rows[r][i];
    }
    System.Windows.Forms.Application.DoEvents();
   }
   worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
   if(cmbxType.Text!="Notification")
   {
    Excel.Range rg=worksheet.get_Range(worksheet.Cells[2,2],worksheet.Cells[ds.Tables[0].Rows.Count+1,2]);
    rg.NumberFormat="00000000";
   }
   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 && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL
  }

免责声明:文章转载自《c#导出到excel》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Jmeter 性能测试报告导出[转]如何:在设备上安装 SQL Server Compact 3.5下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Android开发者选项——Gpu呈现模式分析

对于Android用户来说,无论你用的什么品牌的手机,在开发者选项中都能发现“玄学曲线”的开关,之所以称其为玄学曲线,还是因为它被很多网友用于测试一个说不清道不明的东西——流畅度。说到玄学曲线其实它的真名叫做“ProfileGPURendering”,在中文安卓系统下译为“GPU显示配置文件”或“GPU呈现模式分析”等,根据不同厂商定制系统叫法稍有不同。...

Fiddler断点应用

对于不需要修改的报文,我们可以手动完成发送,fiddler会把拦截的网页发送到服务器或者客户端,需要修改的报文,可以在Fiddler修改完成后,再选择转发。另外,我们也可以使用Fiddler的断点功能模拟网络中断场景,验证服务器超时,客户端的处理情况。Afterresponses:服务器响应之后,在fiddler将响应传回给客户端之前。...

IDEA的设置打不开,点了没反应解决办法

把它去掉用回英文d就可以了。...

ubuntu的ufw如何开放特定端口?

ubuntu的ufw是如何打开特定端口的?1.安装sudoapt getinstallufw2.启用sudoufwenable以默认情况下禁用外部访问sudoufwdefaultdeny 3.查看状态sudoufwstatus4.添加端口sudoufwallow80805。删除端口sudoufwdeleteallow808080806。允许特定源的IP地址从...

PowerQuery清理非文件名字符(清除指定列表中的所有字符)

在左侧导航窗格的空白区域右击,依次找到空白查询项接下来的思路是:遍历列表SearchList中的所有项,依次清理Data表中所有想要处理的列。第三个参数是一个函数:它告诉List.Accumulate函数,在每一次使用SearchList中某一项操作Data表时,其操作的方式是如何的。...

AcWing算法基础课

第二行包含n个整数,表示整数序列。输出格式对于每个输出指令PM,输出表示当前集合中最小值的结果。每个结果占据一行。数据范围1≤ N≤ 105109≤ x(x)≤ 109是合法的。输入示例:8I-10PMI-10D1C28I6PMDM输出示例:-106分析:对于向上和向下操作,请注意ph和hp的应用,这相当于指针ph[k]=t;插入堆中的Kth的位置为t;hp...