C#将数据导入到excel表格中

  1. C#写excel表格相对来说比较容易
  2. public static bool DataTableToExcel(DataTable dt)  
  3.         {  
  4.             bool result = false;  
  5.             IWorkbook workbook = null;  //保存的数据
  6.             FileStream fs = null;  
  7.             IRow row = null;  
  8.             ISheet sheet = null;  //生成表格
  9.             ICell cell = null;  
  10.             try  
  11.             {  
  12.                 if (dt != null && dt.Rows.Count > 0)  
  13.                 {  
  14.                     workbook = new HSSFWorkbook();  
  15.                     sheet = workbook.CreateSheet("Sheet0");//创建一个名称为Sheet0的表  
  16.                     int rowCount = dt.Rows.Count;//行数  
  17.                     int columnCount = dt.Columns.Count;//列数  
  18.   
  19.                     //设置列头  
  20.                     row = sheet.CreateRow(0);//excel第一行设为列头,在第一行中写入数据(所有列的第一行)
  21.                     for (int c = 0; c < columnCount; c++)  
  22.                     {  
  23.                         cell = row.CreateCell(c, CellType.Numeric);  //创建一个单元格,保留文本格式
  24.                         cell.SetCellValue(dt.Columns[c].ColumnName);  //将数据写入到单元格中
  25.                     }                      
  26.   
  27.                     //设置每行每列的单元格,  
  28.                     for (int i = 0; i <rowCount; i++)  //写完所有的行和列
  29.                     {  
  30.                         row = sheet.CreateRow(i+1); //这里是新开启一行,从第二行开始写,第一行上面已经写完
  31.                         for (int j = 0; j < columnCount; j++)  
  32.                         {                              
  33.                             cell = row.CreateCell(j);//excel第二行开始写入数据,一列一列的分别创建单元格 
  34.                             cell.SetCellValue(dt.Rows[i][j].ToString()); //创建列的单元格的内容                             
  35.                         }  
  36.                     }  
  37.                     using (fs = File.OpenWrite(@"D:/xls.xls"))   
  38.                     {  
  39.                         workbook.Write(fs);//向打开的这个xls文件中写入数据  
  40.                         result = true;  
  41.                     }  
  42.                 }  
  43.                 return result;  
  44.             }  
  45.             catch (Exception ex)  
  46.             {  
  47.                 if (fs != null)  
  48.                 {  
  49.                     fs.Close();  
  50.                 }  
  51.                 return false;  
  52.             }  
  53.         } 
C#导入数据Excel表格,通常可以通过多种方式实现。一种常见的方法是使用Microsoft Office的Interop服务,这需要在目标机器上安装Office。另一种方法是使用第三方库,如EPPlus或NPOI,它们可以操作Excel文件而无需Office环境。下面我将介绍使用Microsoft Office Interop服务和EPPlus库两种方法。 ### 使用Microsoft Office Interop服务 1. **添加Interop服务引用**: 在项目添加对Microsoft.Office.Interop.Excel的引用。这可以在Visual Studio的“添加引用”对话框的“COM”标签下找到。 2. **创建Excel应用程序实例**: ```csharp using Microsoft.Office.Interop.Excel; ... Application excelApp = new Application(); ``` 3. **创建工作簿和工作表**: ```csharp Workbook workbook = excelApp.Workbooks.Add(Type.Missing); Worksheet worksheet = workbook.Sheets[1]; ``` 4. **写入数据**: ```csharp worksheet.Cells[1, 1] = "数据"; // 继续写入其他数据... ``` 5. **保存并关闭工作簿**: ```csharp workbook.SaveAs(@"C:\路径\文件名.xlsx"); excelApp.Quit(); ``` ### 使用EPPlus库 1. **添加EPPlus库引用**: 可以通过NuGet包管理器安装EPPlus库。 2. **创建工作簿和工作表**: ```csharp using OfficeOpenXml; ... FileInfo newFile = new FileInfo(@"C:\路径\文件名.xlsx"); using (ExcelPackage package = new ExcelPackage(newFile)) { ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1"); // 添加数据 worksheet.Cells[1, 1].Value = "数据"; // 继续写入其他数据... // 保存工作簿 package.Save(); } ``` 这两种方法都有各自的优势和劣势。使用Interop服务可以直接操作Excel的大多数功能,但是它需要安装Office,且运行时性能开销较大。而EPPlus库不需要安装Office,操作简单,性能较好,但是某些高级Excel功能可能不支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值