我有一个用C#编写的.Net-Windows应用程序,需要打开并处理Excel文件。如何在不使用Microsoft.Office.Interop.Excel库的情况下完成这一操作?
如果您不想使用Interop,您可以尝试OfficeWriter。根据您需要在文件上进行多少处理,这可能有些过度杀伤力。您可以请求免费试用。文档站点提供了完整的API文档。
免责声明:我是最新版本的工程师之一。
public DataTable ReadExcel(string fileName)
{
Excel.Application FExcelObject = new Excel.Application();
var FWorkbookObject = FExcelObject.Workbooks.Open(fileName,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);
//var sheets = FWorkbookObject.Sheets[1];
foreach (Excel.Worksheet sheets in FWorkbookObject.Sheets)
{
System.Data.DataTable dt = new System.Data.DataTable(sheets.Name);
DataRow dr;
StringBuilder sb = new StringBuilder();
int jValue = sheets.UsedRange.Cells.Columns.Count;
int iValue = sheets.UsedRange.Cells.Rows.Count;
for (int j = 1; j <= jValue; j++)
{
dt.Columns.Add("column" + j, System.Type.GetType("System.String"));
}
for (int i = 1; i <= iValue; i++)
{
dr = dt.NewRow();
for (int j = 1; j <= jValue; j++)
{
var oRng = (Microsoft.Office.Interop.Excel.Range)sheets.Cells[i, j];
string strValue = oRng.Text.ToString();
dr["column" + j] = strValue;
}
dt.Rows.Add(dr);
}
return dt;
}
return new DataTable();
}
}