我知道我们可以使用以下方式阅读excel .xls
文件
我们可以使用FileStream
来读取平面文件,是否有任何方法可以使用.xls
中的内置类库来阅读.NET Framework
文件?
答案 0 :(得分:0)
从c#中读取xls的最公平的方法是使用Excel的Microsoft主互操作程序集(PIA)(来自您的选项的" Interop")。但是,它需要在运行此代码的计算机上安装Microsoft Excel,这是一个很大的缺点。这些库是Excel应用程序之上的某种包装器,但它应该允许您读取Excel对象模型中可用的所有内容。
根据我的经验,这种方式或多或少对桌面应用程序有利,但它对服务器端Excel文件处理不利。
答案 1 :(得分:0)
这是一个让你前进的简单例子。
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
Excel.Range range ;
string str;
int rCnt ;
int cCnt ;
int rw = 0;
int cl = 0;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"d:\csharp-Excel.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
range = xlWorkSheet.UsedRange;
rw = range.Rows.Count;
cl = range.Columns.Count;
for (rCnt = 1; rCnt < = rw; rCnt++)
{
for (cCnt = 1; cCnt < = cl; cCnt++)
{
str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
MessageBox.Show(str);
}
}
xlWorkBook.Close(true, null, null);
xlApp.Quit();
Marshal.ReleaseComObject(xlWorkSheet);
Marshal.ReleaseComObject(xlWorkBook);
Marshal.ReleaseComObject(xlApp);
}
}
}
http://csharp.net-informations.com/excel/csharp-read-excel.htm
请记住添加对Microsoft Excel 15.0对象库的引用
答案 2 :(得分:-1)
如果您可以将Microsoft Open XML 2 SDK添加到您的应用程序,您可以阅读现代Open XML文件格式,然后解析XML数据的XML文件。
如果您无法使用Microsoft的解决方案,则必须使用Open XML文件格式作为指南编写自己的解决方案。