NPOI开源库

导出文件样式

导出Excel代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public void Export_Excel(string amp_name, string barcode, string year_week, List<DataVoltage> dv_list)
{


if (dv_list.Count != uIData.SampleNum)
{
MessageBox.Show("采集数量不匹配!", "错误!");
return;
}

try
{

//string excel_Path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Tempplete.xlsx");

XSSFWorkbook workBook = new XSSFWorkbook("Templete.xlsx");
//XSSFWorkbook workBook = new XSSFWorkbook(excel_Path);
//单元格名称
//workBook.CloneSheet(0);//复制工作表
ISheet mySheet = workBook.GetSheetAt(0);
workBook.SetSheetName(0, "ATLAS振动台电压记录表");//设置工作表名称
//表头数据
IRow sRow = mySheet.GetRow(0);
sRow.GetCell(0).SetCellValue("ATLAS振动台电压记录表\r\n" + amp_name);
sRow = mySheet.GetRow(1);//获取当前行
sRow.GetCell(1).SetCellValue(startTime); //开始时间
sRow.GetCell(3).SetCellValue(DateTime.Now.ToLongTimeString()); //结束时间
sRow.GetCell(5).SetCellValue(uIData.Device.Substring(3)); //仪器型号
sRow = mySheet.GetRow(2);//获取当前行
sRow.GetCell(1).SetCellValue(uIData.IsBridgeOut ? "YES" : "NO"); //是否桥接输出
sRow.GetCell(3).SetCellValue(year_week); //生产周期
sRow.GetCell(5).SetCellValue(barcode); //条码
sRow = mySheet.GetRow(3);//获取当前行
sRow.GetCell(1).SetCellValue(uIData.LimitUp + "V"); //上限
sRow.GetCell(3).SetCellValue(uIData.LimitDown + "V"); //下限
sRow.GetCell(5).SetCellValue(uIData.SampleFreq + "点/秒"); //记录周期
try
{
Thread t = new Thread(new ThreadStart(delegate
{
DataVoltage dv;
for (Int32 i = 0; i < uIData.SampleNum; i++)
{
dv = dv_list[i];
mySheet.CopyRow(5 + i, 6 + i);
sRow = mySheet.GetRow(5 + i);
sRow.GetCell(0).SetCellValue((i + 1).ToString());
sRow.GetCell(1).SetCellValue(dv.V1.ToString());
sRow.GetCell(2).SetCellValue(dv.V2.ToString());
if (!uIData.IsBridgeOut)
{
sRow.GetCell(3).SetCellValue(dv.V3.ToString());
sRow.GetCell(4).SetCellValue(dv.V4.ToString());
}
else
{
sRow.GetCell(3).SetCellValue("N/A");
sRow.GetCell(4).SetCellValue("N/A");
}
sRow.GetCell(5).SetCellValue(dv.Time);
sRow.GetCell(6).SetCellValue(dv.result);

}

FileStream fileStream = new FileStream(barcode + ".xlsx", FileMode.Create);
fileStream.Flush();
workBook.Write(fileStream);
fileStream.Close();


}));
t.Start();
}
catch
{
}

}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}