Excel文件操作(創(chuàng)建、讀取、寫入、修改)
2022/9/11??????點擊:
讀取Excel文件,需要導(dǎo)入些dll文件,才能正常的讀取、創(chuàng)建Excell文件:

創(chuàng)建Excel文件
using OfficeOpenXml;
using System.IO;
using UnityEngine;
public class Demo5 : MonoBehaviour
{
void Start()
{
string _filePath = Application.streamingAssetsPath + "/學(xué)生信息.xlsx";
string _sheetName = "詳情";
FileInfo _excelName = new FileInfo(_filePath);
if (_excelName.Exists)
{
//刪除舊文件,并創(chuàng)建個新的 excel 文件。
_excelName.Delete();
_excelName = new FileInfo(_filePath);
}
//通過ExcelPackage打開文件
using (ExcelPackage package = new ExcelPackage(_excelName))
{
//在 excel 空文件添加新 sheet,并設(shè)置名稱。
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(_sheetName);
//添加列名
worksheet.Cells[1, 1].Value = "學(xué)號";
worksheet.Cells[1, 2].Value = "姓名";
worksheet.Cells[1, 3].Value = "性別";
//添加行數(shù)據(jù)
worksheet.Cells[2, 1].Value = 100001;
worksheet.Cells[2, 2].Value = "張三";
worksheet.Cells[2, 3].Value = "男";
//添加行數(shù)據(jù)
worksheet.Cells[3, 1].Value = 100002;
worksheet.Cells[3, 2].Value = "李四";
worksheet.Cells[3, 3].Value = "女";
//添加行數(shù)據(jù)
worksheet.Cells[4, 1].Value = 120033;
worksheet.Cells[4, 2].Value = "Saw";
worksheet.Cells[4, 3].Value = "男";
//保存excel
package.Save();
}
}
}
讀取Excel文件
讀取Excel,主要操作就是先用IO命名空間里面的文件讀取類以文件流形式讀取文件,然后再從dll里面的API去轉(zhuǎn)化數(shù)據(jù)保存下來,然后使用DataSet數(shù)據(jù)結(jié)構(gòu)保存數(shù)據(jù):
using Excel;
using System.Data;
using System.IO;
using UnityEngine;
public class Demo5 : MonoBehaviour
{
void Start()
{
DataRowCollection _dataRowCollection = ReadExcel(Application.streamingAssetsPath + "/學(xué)生信息.xlsx");
for (int i = 0; i < _dataRowCollection.Count; i++)
{
Debug.Log(_dataRowCollection[i][0] + " " + _dataRowCollection[i][1] + " " + _dataRowCollection[i][2]);
}
}
//通過表的索引,返回個DataRowCollection表數(shù)據(jù)對象
private DataRowCollection ReadExcel(string _path, int _sheetIndex = 0)
{
FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
return result.Tables[_sheetIndex].Rows;
}
//通過表的名字,返回個DataRowCollection表數(shù)據(jù)對象
private DataRowCollection ReadExcel(string _path, string _sheetName)
{
FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read, FileShare.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
DataSet result = excelReader.AsDataSet();
return result.Tables[_sheetName].Rows;
}
}
修改Excel數(shù)據(jù)
修改Excel數(shù)據(jù),需要知道自己要修改的哪行那列的數(shù)據(jù),如果是部修改,不如將原來的Excel刪除,然后再構(gòu)建個,如果只是修改某行某列的數(shù)據(jù)的話,可以使用下面的方法,比如,修改4行3列的數(shù)據(jù):
using Excel;
using OfficeOpenXml;
using System.Data;
using System.IO;
using UnityEngine;
public class Demo5 : MonoBehaviour
{
void Start()
{
string path = Application.streamingAssetsPath + "/學(xué)生信息.xlsx";
UpdateExcel(path);
}
private void UpdateExcel(string filePath)
{
FileInfo _excelName = new FileInfo(filePath);
using (ExcelPackage package = new ExcelPackage(_excelName))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets["詳情"];
//修改某行的數(shù)據(jù)
worksheet.Cells[4, 3].Value = "女";
//保存excel
package.Save();
}
}
}
讀取Excel需要引入DLL,注意不同的Excel版本,可能會有些問題出現(xiàn)。
本文來自網(wǎng)絡(luò),版權(quán)歸原作者所有
- 上一篇:Csv文件操作(創(chuàng)建、讀取、寫入、修改) 2022/9/11
- 下一篇:Xml文件操作(創(chuàng)建、讀取、寫入、修改) 2022/9/11
