.Net读取xlsx文件Excel2007

.NET 读取Excel 2007的xlsx文件和读取老的.xls文件是一样的,都是用Oledb读取,仅仅连接字符串不同而已。
读取xlsx 用的是Microsoft.Ace.OleDb.12.0;
具体操作方法如下:
public  static  DataTable GetExcelToDataTableBySheet( string  FileFullPath, string  SheetName)
{
             //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + FileFullPath + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
             string  strConn = "Provider=Microsoft.Ace.OleDb.12.0;"  + "data source="  + FileFullPath + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'" ; //此连接可以操作.xls与.xlsx文件
             OleDbConnection conn = new  OleDbConnection(strConn);
             conn.Open();
             DataSet ds = new  DataSet();
             OleDbDataAdapter odda = new  OleDbDataAdapter( string .Format( "SELECT * FROM [{0}]" , SheetName), conn);                    //("select * from [Sheet1$]", conn);
             odda.Fill(ds, SheetName);
             conn.Close();
             return  ds.Tables[0];
 
}
  
 
读取Excel文件时,可能一个文件中会有多个Sheet,因此获取Sheet的名称是非常有用的。
 
具体操作方法如下:
 
//根据Excel物理路径获取Excel文件中所有表名
 
public  static  String[] GetExcelSheetNames( string  excelFile)
{
             OleDbConnection objConn = null ;
             System.Data.DataTable dt = null ;
 
             try
             {
                 //string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + excelFile + ";Extended Properties='Excel 8.0; HDR=NO; IMEX=1'"; //此连接只能操作Excel2007之前(.xls)文件
 
                 string  strConn = "Provider=Microsoft.Ace.OleDb.12.0;"  + "data source="  + excelFile + ";Extended Properties='Excel 12.0; HDR=NO; IMEX=1'" ; //此连接可以操作.xls与.xlsx文件
                 objConn = new  OleDbConnection(strConn);
                 objConn.Open();
                 dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null );
                 if  (dt == null )
                 {
                     return  null ;
                 }
                 String[] excelSheets = new  String[dt.Rows.Count];
                 int  i = 0;
                 foreach  (DataRow row in  dt.Rows)
                 {
                     excelSheets[i] = row[ "TABLE_NAME" ].ToString();
                     i++;
                 }
 
                 return  excelSheets;
             }
             catch
             {
                 return  null ;
             }
             finally
             {
                 if  (objConn != null )
                 {
                     objConn.Close();
                     objConn.Dispose();
                 }
                 if  (dt != null )
                 {
                     dt.Dispose();
                 }
             }
}
非常简单就可以读取到文件内容了,.NET就是强大。
命名空间:using System.IO;
返回路径:StreamReader sr = new StreamReader(@"路径", System.Text.Encoding.GetEncoding("GB18030")); //[设置中文编码]
读取文件:textBox1.Text = sr.ReadToEnd();
关闭流:sr.Close();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 以下是VB.NET代码示例,演示如何读取文本文件并将其写入Excel工作表中: ``` Imports Microsoft.Office.Interop.Excel Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '打开文本文件 Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\example.txt") '分割文本文件中的行 Dim lines() As String = fileReader.Split(Environment.NewLine) '创建一个新的Excel应用程序实例 Dim ExcelApp As New Excel.Application '打开Excel文件 Dim ExcelWorkbook As Excel.Workbook = ExcelApp.Workbooks.Open("C:\example.xlsx") '选中第一个工作表 Dim ExcelWorksheet As Excel.Worksheet = ExcelWorkbook.Sheets(1) '写入文本文件中的行到Excel工作表中 For i As Integer = 0 To lines.Length - 1 ExcelWorksheet.Cells(i + 1, 1) = lines(i) Next '保存Excel文件并关闭应用程序 ExcelWorkbook.Save() ExcelWorkbook.Close() ExcelApp.Quit() '释放Excel对象 Marshal.ReleaseComObject(ExcelApp) End Sub End Class ``` 在这个示例中,我们使用`My.Computer.FileSystem.ReadAllText()`方法读取文本文件的内容,并使用`String.Split()`方法将其分割成行。我们创建了一个新的Excel应用程序实例,并打开了一个Excel工作簿。然后,我们选中了第一个工作表,并使用`Cells()`属性将文本文件中的每一行写入到Excel工作表中。最后,我们保存Excel文件并关闭应用程序。 ### 回答2: 在VB.NET读取TXT文件并将其写入Excel文件的过程如下: 首先,要在代码中导入相关的命名空间: ```vb Imports Microsoft.Office.Interop Imports System.IO ``` 然后,可以编写一个方法来实现这个功能: ```vb Private Sub ReadTxtWriteToExcel(txtFilePath As String, excelFilePath As String) ' 创建Excel应用程序 Dim excelApp As New Excel.Application() ' 打开Excel文件 Dim excelWorkbook As Excel.Workbook = excelApp.Workbooks.Open(excelFilePath) ' 选择第一个工作表 Dim excelWorksheet As Excel.Worksheet = CType(excelWorkbook.Worksheets(1), Excel.Worksheet) ' 读取TXT文件的内容 Dim txtLines As String() = File.ReadAllLines(txtFilePath) For i As Integer = 0 To txtLines.Length - 1 ' 获取每一行的数据 Dim lineData As String = txtLines(i) ' 将数据按照某种规则拆分成列 Dim columns As String() = lineData.Split(vbTab) ' 根据制表符拆分列数据 ' 将数据写入Excel的单元格 For j As Integer = 0 To columns.Length - 1 ' Excel单元格是从1开始计数的,所以要加1 excelWorksheet.Cells(i + 1, j + 1) = columns(j) Next Next ' 保存并关闭Excel文件 excelWorkbook.Save() excelWorkbook.Close() ' 关闭Excel应用程序 excelApp.Quit() End Sub ``` 在调用这个方法时,需要提供TXT文件的路径和Excel文件的路径作为参数。例如: ```vb ReadTxtWriteToExcel("C:\input.txt", "C:\output.xlsx") ``` 这样,就可以将TXT文件的内容写入Excel文件了。注意要确保Excel应用程序已经安装在计算机上,并且有读写目标Excel文件的权限。 ### 回答3: 在VB.Net中,可以通过以下步骤将TXT文件读取并写入Excel里。 步骤1:导入所需的命名空间 首先,在代码中导入以下命名空间: ``` Imports System.IO Imports Excel = Microsoft.Office.Interop.Excel ``` 步骤2:创建读取TXT文件的函数 下面是一个示例函数,用于读取TXT文件中的数据: ``` Private Function ReadTextFile(filePath As String) As List(Of String) Dim lines As New List(Of String) If File.Exists(filePath) Then Using reader As New StreamReader(filePath) While Not reader.EndOfStream lines.Add(reader.ReadLine()) End While End Using End If Return lines End Function ``` 步骤3:创建写入Excel文件的函数 下面是一个示例函数,用于将数据写入Excel文件中: ``` Private Sub WriteToExcel(data As List(Of String), excelFilePath As String) Dim xlApp As New Excel.Application Dim xlWorkbook As Excel.Workbook = xlApp.Workbooks.Add() Dim xlWorksheet As Excel.Worksheet = xlWorkbook.Sheets(1) For i = 0 To data.Count - 1 xlWorksheet.Cells(i + 1, 1) = data(i) Next xlWorkbook.SaveAs(excelFilePath) xlWorkbook.Close() xlApp.Quit() End Sub ``` 步骤4:调用函数 在你的代码中,你可以调用上述函数来读取TXT文件并将其写入Excel文件中: ``` Dim txtData As List(Of String) = ReadTextFile("path/to/text/file.txt") WriteToExcel(txtData, "path/to/excel/file.xlsx") ``` 请确保你已经安装了Microsoft Excel,并将Excel的Interop组件添加到你的项目引用中,以便在代码中使用相关的类和方法。另外,确保提供正确的路径来读取和保存文件

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值