.net中Excel的操作

 
这是一个在.net中Excel基本的操作,代码有参考价值. 但是缺点是写入速度太慢.
1. 首先要导入Com文件Microsoft Excel 11.0 Object Library. 或者昌我提供的下载资源的Excel.dll,建议使用我的那一个Excel.dll,是Office2000 的,兼容性比较好一些.

2. 代码如下
  1. /// <summary>
  2.     /// 导出Excel
  3.     /// </summary>
  4.     /// <param name="dt">要导出的DataTable</param>
  5.     public void ExportToExcel(System.Data.DataTable dt)
  6.     {
  7.         if (dt == nullreturn;
  8.         Excel.Application xlApp = new Excel.Application();
  9.         if (xlApp == null)
  10.         {
  11.             lblMsg.Text = "无法创建Excel对象,可能您的机子未安装Excel";
  12.             return;
  13.         }
  14.         Excel.Workbooks workbooks = xlApp.Workbooks;
  15.         Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
  16.         Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
  17.         Excel.Range range = null;
  18.         long totalCount = dt.Rows.Count;
  19.         long rowRead = 0;
  20.         float percent = 0;
  21.         //写入标题
  22.         for (int i = 0; i < dt.Columns.Count; i++)
  23.         {
  24.             worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
  25.             range = (Excel.Range)worksheet.Cells[1, i + 1];
  26.             //range.Interior.ColorIndex = 15;//背景颜色
  27.             range.Font.Bold = true;//粗体
  28.             range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;//居中
  29.             //加边框
  30.             range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThin, Excel.XlColorIndex.xlColorIndexAutomatic, null);
  31.             //range.ColumnWidth = 4.63;//设置列宽
  32.             //range.EntireColumn.AutoFit();//自动调整列宽
  33.             //r1.EntireRow.AutoFit();//自动调整行高
  34.         }
  35.         //写入内容
  36.         for (int r = 0; r < dt.Rows.Count; r++)
  37.         {
  38.             for (int i = 0; i < dt.Columns.Count; i++)
  39.             {
  40.                 worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i];
  41.                 range = (Excel.Range)worksheet.Cells[r + 2, i + 1];
  42.                 range.Font.Size = 9;//字体大小
  43.                 //加边框
  44.                 range.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlThin, Excel.XlColorIndex.xlColorIndexAutomatic, null);
  45.                 range.EntireColumn.AutoFit();//自动调整列宽
  46.             }
  47.             rowRead++;
  48.             percent = ((float)(100 * rowRead)) / totalCount;
  49.             System.Windows.Forms.Application.DoEvents();
  50.         }
  51.         range.Borders[Excel.XlBordersIndex.xlInsideHorizontal].Weight = Excel.XlBorderWeight.xlThin;
  52.         if (dt.Columns.Count > 1)
  53.         {
  54.             range.Borders[Excel.XlBordersIndex.xlInsideVertical].Weight = Excel.XlBorderWeight.xlThin;
  55.         }
  56.         try
  57.         {
  58.             workbook.Saved = true;
  59.             workbook.SaveCopyAs(System.Web.HttpRuntime.AppDomainAppPath + "XMLFiles//EduceWordFiles//" + this.Context.User.Identity.Name + ".xls");
  60.         }
  61.         catch (Exception ex)
  62.         {
  63.             lblMsg.Text = "导出文件时出错,文件可能正被打开!/n" + ex.Message;
  64.         }
  65.         xlApp.Quit();
  66.         GC.Collect();//强行销毁

3.如果是放在IIS中,现在是不能到出的,还要配置一下
方案一:在Web.config中添加
          <system.web>
                <identity impersonate="true" userName="管理员名" password="密码" />
          <system.web>
方案二:
          (1)在运行->dcomcnfg打开组件服务
          (2) 在控制台根目录->组件服务->计算机->我的电脑->DCOM配置->MicrosoftExcel应用程序->属性->安全
          (3)启动和激活权限->使用自定义->添加一个ASPNET用户,还有打开本地启动本地激活
               访问权限->使用自定义->添加一个ASPNET用户,还有打开本地访问远程访问



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: .NET操作Excel是支持多版本的。在.NET平台上,我们可以使用不同的库来操作Excel,其包括Microsoft Office.Interop.Excel、NPOI、EPPlus等。 Microsoft Office.Interop.Excel是最常用的库,它是使用COM对象来操作Excel的。这种方式可以支持几乎所有的Excel版本,包括Excel 2003、Excel 2007、Excel 2010、Excel 2013和Excel 2016等。使用Interop库,我们可以实现对Excel文件的读取、写入、修改和格式设置等操作。 另外,NPOI是一个开源项目,它提供了一个.NET平台上操作Office文档的库。它可以读取和写入Excel文件,并且支持多个Excel版本。我们可以使用NPOI来对Excel进行操作,无论是更早的版本,如Excel 97-2003,还是较新的版本,如Excel 2007及其以上版本。 EPPlus是一个开源的.NET库,专门用于Excel的读写操作。它支持多个Excel版本,包括Excel 2007及其以上版本。EPPlus提供了简单易用的API,使开发人员可以轻松地读取和写入Excel文件,创建表格、样式和图表等。 综上所述,.NET平台对于操作Excel提供了多个库,这些库支持多个Excel版本。我们可以根据具体需求选择适合的库来操作Excel文件,无论是早期的Excel版本还是较新的版本。这样,我们可以更加方便地进行Excel数据的读写和处理。 ### 回答2: .NET操作Excel支持多版本是因为在.NET框架,我们可以使用一种称为"Microsoft.Office.Interop.Excel"的库来读写Excel文件。这个库是由Microsoft官方提供的,支持多个不同版本的Excel。它允许我们在.NET应用程序创建、打开、读取、写入和保存Excel文件。 通过使用这个库,我们可以在代码指定所需的Excel版本来操作文件。无论是旧版本的Excel(如Excel 97-2003)还是较新版本的Excel(如Excel 2007及更高版本),都可以使用这个库来进行操作。 在操作Excel文件时,我们可以使用一些通用的方法,例如创建新的工作簿、在工作表写入数据、读取工作表的数据等。这些方法对于不同版本的Excel都是兼容的,所以我们不用担心会因为使用不同的Excel版本而导致代码出错。 然而,需要注意的是,不同版本的Excel支持的功能有所不同。较新版本的Excel可能具有更多的功能和特性,而旧版本的Excel可能不支持这些功能。因此,在开发应用程序时,我们需要根据目标用户使用的Excel版本来选择适合的功能,以确保应用程序在不同版本的Excel运行正常。 综上所述,.NET操作Excel支持多版本,可以通过使用"Microsoft.Office.Interop.Excel"库在.NET应用程序读写多个不同版本的Excel文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值