namespace a.Excel
{
class WR_Excel
{
public void TestWR()
{
string importExcelPath = "E:\\import.xlsx";
string exportExcelPath = "E:\\export.xlsx";
IWorkbook workbook = WorkbookFactory.Create(importExcelPath);
ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作薄
IRow row = (IRow)sheet.GetRow(0);//获取第一行
//设置第一行第一列值,更多方法请参考源官方Demo
row.CreateCell(0).SetCellValue("test");//设置第一行第一列值
//导出excel
FileStream fs = new FileStream(exportExcelPath, FileMode.Create, FileAccess.ReadWrite);
workbook.Write(fs);
fs.Close();
}
public void GreatFile(string filname)
{
IWorkbook hssfworkbook = new HSSFWorkbook(); //用于创建 .xls
// IWorkbook myXSSFworkbook = new XSSFWorkbook(); //用于创建 .xlsx
ISheet mysheetHSSF = hssfworkbook.CreateSheet("Sheet1");
hssfworkbook.CreateSheet("Sheet2");
hssfworkbook.CreateSheet("Sheet3");
hssfworkbook.CreateSheet("Sheet4");
IRow rowHSSF = mysheetHSSF.CreateRow(0);
rowHSSF.CreateCell(0).SetCellValue(true);
rowHSSF.CreateCell(1).SetCellValue(System.DateTime.Now);
rowHSSF.CreateCell(2).SetCellValue(10.13);
rowHSSF.CreateCell(3).SetCellValue("学习NPOI!");
FileStream file = new FileStream(filname, FileMode.Create);
hssfworkbook.Write(file);
file.Close();
}
public void WriteFile(string filname, List<Double> y0 , List<Double> y1,
List<Double> y2, List<Double> y3, List<Double> y4, List<Double> y5,
List<Double> y6, List<Double> y7, List<Double> y8, List<Double> y9, List<Double> y10)
{
// IWorkbook workbook = WorkbookFactory.Create(filname);
// ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作薄
IWorkbook workbook = new HSSFWorkbook(); //用于创建 .xls
// IWorkbook myXSSFworkbook = new XSSFWorkbook(); //用于创建 .xlsx
ISheet sheet = workbook.CreateSheet("Sheet1");
IRow row = sheet.CreateRow(0);
row.CreateCell(0).SetCellValue("电池电压");//设置第一行第一列值
row.CreateCell(1).SetCellValue("母线电压");//设置第一行第一列值
row.CreateCell(2).SetCellValue("充电电流");//设置第一行第一列值
row.CreateCell(3).SetCellValue("放电电流");//设置第一行第一列值
row.CreateCell(4).SetCellValue("发电电流");//设置第一行第一列值
row.CreateCell(5).SetCellValue("电机1电流");//设置第一行第一列值
row.CreateCell(6).SetCellValue("电机2电流");//设置第一行第一列值
row.CreateCell(7).SetCellValue("电机3电流");//设置第一行第一列值
row.CreateCell(8).SetCellValue("电机4电流");//设置第一行第一列值
row.CreateCell(9).SetCellValue("电机5电流");//设置第一行第一列值
row.CreateCell(10).SetCellValue("电机6电流");//设置第一行第一列值
row.CreateCell(11).SetCellValue("放电电流");//设置第一行第一列值
for (int i = 0; i < y0.Count; i++)
{
row = sheet.CreateRow(i+1);
//IRow row = (IRow)sheet.GetRow(i);//获取第一行
row.CreateCell(0).SetCellValue(y0[i]);//设置第一行第一列值
row.CreateCell(1).SetCellValue(y1[i]);//设置第一行第一列值
row.CreateCell(2).SetCellValue(y2[i]);//设置第一行第一列值
row.CreateCell(3).SetCellValue(y3[i]);//设置第一行第一列值
row.CreateCell(4).SetCellValue(y4[i]);//设置第一行第一列值
row.CreateCell(5).SetCellValue(y5[i]);//设置第一行第一列值
row.CreateCell(6).SetCellValue(y6[i]);//设置第一行第一列值
row.CreateCell(7).SetCellValue(y7[i]);//设置第一行第一列值
row.CreateCell(8).SetCellValue(y8[i]);//设置第一行第一列值
row.CreateCell(9).SetCellValue(y9[i]);//设置第一行第一列值
row.CreateCell(10).SetCellValue(y10[i]);//设置第一行第一列值
}
FileStream file = new FileStream(filname, FileMode.Create);
workbook.Write(file);
file.Close();
}
public void ReadFile(string filname, List<Double> y0, List<Double> y1,
List<Double> y2, List<Double> y3, List<Double> y4, List<Double> y5,
List<Double> y6, List<Double> y7, List<Double> y8, List<Double> y9, List<Double> y10)
{
try
{
IWorkbook workbook = WorkbookFactory.Create(filname);
ISheet sheet = workbook.GetSheetAt(0);//获取第一个工作薄
int len = sheet.LastRowNum;
IRow rowHSSF = sheet.GetRow(0);
if (rowHSSF.GetCell(0).ToString() == "电池电压")
{
for (int i = 0; i < len; i++)
{
rowHSSF = sheet.GetRow(i + 1);
y0.Add(Convert.ToInt32(rowHSSF.GetCell(0).ToString()));
y1.Add(Convert.ToInt32(rowHSSF.GetCell(1).ToString()));
y2.Add(Convert.ToInt32(rowHSSF.GetCell(2).ToString()));
y3.Add(Convert.ToInt32(rowHSSF.GetCell(3).ToString()));
y4.Add(Convert.ToInt32(rowHSSF.GetCell(4).ToString()));
y5.Add(Convert.ToInt32(rowHSSF.GetCell(5).ToString()));
y6.Add(Convert.ToInt32(rowHSSF.GetCell(6).ToString()));
y7.Add(Convert.ToInt32(rowHSSF.GetCell(7).ToString()));
y8.Add(Convert.ToInt32(rowHSSF.GetCell(8).ToString()));
y9.Add(Convert.ToInt32(rowHSSF.GetCell(9).ToString()));
y10.Add(0);//rowHSSF.GetCell(10).ToString())
}
}
}
catch
{
MessageBox.Show("文件被另外的进程打开");
return;
}
finally
{
}
}
}
}
C# 读写Excel
最新推荐文章于 2024-03-27 10:43:10 发布