183 lines
5.4 KiB
C#
183 lines
5.4 KiB
C#
|
|
#if UNITY_EDITOR
|
||
|
|
using UnityEngine;
|
||
|
|
using System.Collections;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using NPOI.HSSF.UserModel;
|
||
|
|
using NPOI.SS.UserModel;
|
||
|
|
using NPOI.HSSF.Util;
|
||
|
|
using System.IO;
|
||
|
|
using ArabicSupport;
|
||
|
|
|
||
|
|
public class MyExcel : MonoBehaviour
|
||
|
|
{
|
||
|
|
private string MySheetName = "Sheet_Test";
|
||
|
|
|
||
|
|
public List<string> MyCellArray;
|
||
|
|
public List<string> MyCellArray02;
|
||
|
|
|
||
|
|
public List<string> MyString;
|
||
|
|
|
||
|
|
private bool ReadExcelEnable_NPOI = false;
|
||
|
|
private bool ReadExcelEnable_ExcelDataReader = false;
|
||
|
|
|
||
|
|
void OnGUI()
|
||
|
|
{
|
||
|
|
GUIStyle style = new GUIStyle();
|
||
|
|
|
||
|
|
GUI.Label(new Rect(10, 10, 100, 30), "Sheet Name:");
|
||
|
|
MySheetName = GUI.TextField(new Rect(90, 10, 200, 30), MySheetName, 25);
|
||
|
|
|
||
|
|
style.richText = true;
|
||
|
|
|
||
|
|
FileStream MyAddress = new FileStream(Application.dataPath + "/My First Excel.xls", FileMode.OpenOrCreate,
|
||
|
|
FileAccess.ReadWrite, FileShare.ReadWrite);
|
||
|
|
|
||
|
|
if (GUI.Button(new Rect(300, 10, 200, 30), "Create Excel Files With " + "<color=red>NPOI</color>"))
|
||
|
|
{
|
||
|
|
HSSFWorkbook MyWorkbook = new HSSFWorkbook();
|
||
|
|
|
||
|
|
HSSFSheet Sheet01 = (HSSFSheet)MyWorkbook.CreateSheet(MySheetName);
|
||
|
|
|
||
|
|
for (int i = 0; i < 5; i++)
|
||
|
|
{
|
||
|
|
HSSFRow Row = (HSSFRow)Sheet01.CreateRow((short)i);
|
||
|
|
|
||
|
|
HSSFCell cell = (HSSFCell)Row.CreateCell((short)0);
|
||
|
|
|
||
|
|
cell.SetCellValue(MyCellArray[i]);
|
||
|
|
|
||
|
|
if (i < MyCellArray02.Count)
|
||
|
|
{
|
||
|
|
HSSFCell cell02 = (HSSFCell)Row.CreateCell((short)1);
|
||
|
|
|
||
|
|
cell02.SetCellValue(MyCellArray02[i]);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
HSSFCell cell02 = (HSSFCell)Row.CreateCell((short)1);
|
||
|
|
|
||
|
|
cell02.SetCellValue("");
|
||
|
|
}
|
||
|
|
|
||
|
|
Row.RowStyle = MyWorkbook.CreateCellStyle();
|
||
|
|
|
||
|
|
Row.RowStyle.BorderBottom = BorderStyle.Double;
|
||
|
|
|
||
|
|
cell.CellStyle = MyWorkbook.CreateCellStyle();
|
||
|
|
|
||
|
|
cell.CellStyle.BorderRight = BorderStyle.Thin;
|
||
|
|
cell.CellStyle.BorderBottom = BorderStyle.Dashed;
|
||
|
|
cell.CellStyle.BottomBorderColor = HSSFColor.Red.Index;
|
||
|
|
cell.CellStyle.FillPattern = FillPattern.SolidForeground;
|
||
|
|
cell.CellStyle.FillForegroundColor = HSSFColor.Red.Index;
|
||
|
|
//HSSFFont MyFont = (HSSFFont)MyWorkbook.CreateFont();
|
||
|
|
|
||
|
|
//MyFont.FontName = "Tahoma";
|
||
|
|
//MyFont.FontHeightInPoints = 14;
|
||
|
|
//MyFont.Color = HSSFColor.Gold.Index;
|
||
|
|
//MyFont.Boldweight = (short)FontBoldWeight.Bold;
|
||
|
|
|
||
|
|
//cell.CellStyle.SetFont(MyFont);
|
||
|
|
}
|
||
|
|
|
||
|
|
MyWorkbook.Write(MyAddress);
|
||
|
|
|
||
|
|
MyWorkbook.Close();
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
//if (GUI.Button(new Rect(60, 120, 200, 30), "Reading Excel Files With " + "<color=yellow>NPOI</color>"))
|
||
|
|
//{
|
||
|
|
|
||
|
|
// ReadExcelEnable_NPOI = true;
|
||
|
|
|
||
|
|
// ReadExcelEnable_ExcelDataReader = false;
|
||
|
|
|
||
|
|
// MyString.Clear();
|
||
|
|
|
||
|
|
//}
|
||
|
|
|
||
|
|
//if (ReadExcelEnable_NPOI == true)
|
||
|
|
//{
|
||
|
|
|
||
|
|
// HSSFWorkbook MyBook;
|
||
|
|
|
||
|
|
// using (FileStream MyAddress_Read = new FileStream(Application.dataPath + "/My First Excel.xls", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
||
|
|
// {
|
||
|
|
// MyBook = new HSSFWorkbook(MyAddress_Read);
|
||
|
|
// }
|
||
|
|
|
||
|
|
// ISheet Sheet_Read = MyBook.GetSheet(MySheetName);
|
||
|
|
|
||
|
|
// for (int row = 0; row <= Sheet_Read.LastRowNum; row++)
|
||
|
|
// {
|
||
|
|
|
||
|
|
// IRow Row_Read = Sheet_Read.GetRow(row);
|
||
|
|
|
||
|
|
// for (int cells = 0; cells < Row_Read.LastCellNum; cells++)
|
||
|
|
// {
|
||
|
|
|
||
|
|
// GUI.Label(new Rect(400 + cells * 200, 100 + row * 40, 200, 20),Row_Read.GetCell(cells).ToString());
|
||
|
|
|
||
|
|
// //Arabic And Persian Support
|
||
|
|
// //GUI.Label(new Rect(400 + cells * 200,100+ row * 40, 200, 20),ArabicFixer.Fix(Row_Read.GetCell(cells).ToString()));
|
||
|
|
// }
|
||
|
|
|
||
|
|
// }
|
||
|
|
//}
|
||
|
|
|
||
|
|
//if (GUI.Button(new Rect(10, 160, 300, 30), "Reading Excel Files With " + "<color=yellow>ExcelDataReader</color>"))
|
||
|
|
//{
|
||
|
|
|
||
|
|
// ReadExcelEnable_ExcelDataReader = true;
|
||
|
|
|
||
|
|
// ReadExcelEnable_NPOI = false;
|
||
|
|
|
||
|
|
// MyString.Clear();
|
||
|
|
|
||
|
|
//}
|
||
|
|
|
||
|
|
//if (ReadExcelEnable_ExcelDataReader == true)
|
||
|
|
//{
|
||
|
|
|
||
|
|
// IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(MyAddress);
|
||
|
|
|
||
|
|
// DataSet Result = excelReader.AsDataSet();
|
||
|
|
|
||
|
|
// excelReader.IsFirstRowAsColumnNames = true;
|
||
|
|
|
||
|
|
// int NumberOfRows = Result.Tables[0].Rows.Count;
|
||
|
|
|
||
|
|
// int NumberOfCols = Result.Tables[0].Columns.Count;
|
||
|
|
|
||
|
|
// for (int i = 0; i < NumberOfRows; i++)
|
||
|
|
// {
|
||
|
|
|
||
|
|
// for (int j = 0; j < NumberOfCols; j++)
|
||
|
|
// {
|
||
|
|
|
||
|
|
// if (i == NumberOfRows - 1 && j == NumberOfCols - 1)
|
||
|
|
// {
|
||
|
|
|
||
|
|
// ReadExcelEnable_ExcelDataReader = false;
|
||
|
|
|
||
|
|
// }
|
||
|
|
|
||
|
|
// MyString.Add(Result.Tables[0].Rows[i][j].ToString());
|
||
|
|
|
||
|
|
// }
|
||
|
|
// }
|
||
|
|
//}
|
||
|
|
|
||
|
|
//for (int b = 0; b < MyString.Count; b++)
|
||
|
|
//{
|
||
|
|
|
||
|
|
// GUI.Label(new Rect(400,100+ 20 * b, 200, 20),MyString[b]);
|
||
|
|
|
||
|
|
// //Arabic And Persian Support
|
||
|
|
// //GUI.Label(new Rect(400, 100 + 20 * b, 200, 20), ArabicFixer.Fix(MyString[b]));
|
||
|
|
//}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|