using System.Collections.Generic;
using System.IO;
using UnityEngine;
using OfficeOpenXml;
public class SaveAnotherFile : MonoBehaviour {
FileInfo newFile;
void Create(string filePath)//覆盖同名的EXcel,没有就创建
{
newFile = new FileInfo(filePath);
if (newFile.Exists)
{
newFile.Delete(); // 确保创建新工作簿
newFile = new FileInfo(filePath);
}
//所有操作语句要放到using中
using (ExcelPackage package = new ExcelPackage(newFile))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Sheet1");//添加sheet
worksheet.DefaultColWidth = 15; //默认列宽
worksheet.DefaultRowHeight = 20; //默认行高
worksheet.Cells[1, 1].Value = "ID";
worksheet.Cells[1, 2].Value = "名称";
worksheet.Cells[1, 3].Value = "数量";
package.Save();
Debug.Log("已创建Excel文件");
}
}
public void SaveAsAnother()//另存
{
OpenFileName openFile = SelectFileLog.SaveFileName();//调用另存工具
string persistDataPath;
if (SelectFileLog.GetSaveFileName(openFile))
{
if (!openFile.fileTitle.Contains(".xlsx"))
persistDataPath = openFile.file + ".xlsx";
else
persistDataPath = openFile.file;
//Create(persistDataPath);
SaveExcel(persistDataPath);
}
}
public void SaveExcel(string filePath, Dictionary<string, string> dic)
{
newFile = new FileInfo(filePath);
using (ExcelPackage package = new ExcelPackage(newFile))
{
var workSheets = package.Workbook.Worksheets;
ExcelWorksheet worksheet = null;
if (workSheets.Count > 0)
worksheet = workSheets[1];
else
worksheet = workSheets.Add("Sheet1");
worksheet.Cells.Clear();
//添加列名
worksheet.Cells[1, 1].Value = "序号";
worksheet.Cells[1, 2].Value = "名称";
worksheet.Cells[1, 3].Value = "数量";
//获得最大行数
int MaxRowIndex, i = 0;
//添加数据
foreach (var item in dic)
{
MaxRowIndex = worksheet.Dimension.End.Row;//最后一行
i++;
worksheet.Cells[MaxRowIndex + 1, 1].Value = i.ToString("00");
worksheet.Cells[MaxRowIndex + 1, 2].Value = item.Key.Split('/')[2];
worksheet.Cells[MaxRowIndex + 1, 3].Value = item.Value.ToString();
}
package.Save();
Debug.Log("写入完成");
}
}
}
void ReadExcel()
{
FileInfo fileInfo = new FileInfo("path");
using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
{
Worksheet wordsheet = excelPackage.Workbook.WorkSheets[1];
string value = worksheet.Cells[1, 1].Value.ToString();
Debug.LogError(value);
}
}
void OperationSheet()
{
FileInfo fileInfo = new FileInfo("path");
using (ExcelPackage excelPackage = new ExcelPackage(fileInfo))
{
ExcelWorksheet worksheet = excelPackage.Workbook.WorkSheets.Add("sheet0");
ExcelWorksheet worksheet = excelPackage.Workbook.WorkSheets.Add("sheet1");
ExcelWorksheet worksheet = excelPackage.Workbook.WorkSheets.Delete("sheet2");
excelPackage.Save();
}
}