添加项目文件。

This commit is contained in:
xyy
2026-01-16 20:53:33 +08:00
parent a75be0a011
commit a254118c27
92 changed files with 36090 additions and 0 deletions

View File

@@ -0,0 +1,243 @@
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace .Excle
{
internal class ExperData_ExcleHelper
{
public void ExportToExcel(List<List<float>> data, List<string> timeList)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// 创建 Excel 包
using (var package = new ExcelPackage())
{
// 添加一个工作表
var worksheet = package.Workbook.Worksheets.Add("Sheet1");
// 定义表头
string[] headers = {"时间",
"室内气溶胶浓度", "口罩内气溶胶浓度", "泄露率",
"室内CO2浓度", "口罩内CO2浓度", "室内氧浓度", "室内温度", "室内湿度"
};
// 写入表头
for (int col = 0; col < headers.Length; col++)
{
worksheet.Cells[1, col + 1].Value = headers[col]; // 表头从第一行开始
}
//
for (int i = 0; i < timeList.Count; i++)
{
worksheet.Cells[i + 2, 1].Value = timeList[i]; // 时间从第二行开始
}
// 写入数据(从第二行开始)
for (int col = 0; col < data.Count; col++)
{
List<float> columnData = data[col]; // 获取当前列的数据
for (int row = 0; row < columnData.Count; row++)
{
worksheet.Cells[row + 2, col + 2].Value = columnData[row]; // 数据从第二行开始
}
}
// 保存 Excel 文件
SaveFileDialog saveFileDialog = new SaveFileDialog
{
Filter = "Excel Files|*.xlsx",
Title = "保存 Excel 文件"
};
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
FileInfo fileInfo = new FileInfo(saveFileDialog.FileName);
package.SaveAs(fileInfo);
MessageBox.Show("数据导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
//public void ExportToExcel(List<List<List<float>>> data, List<List<string>> timeList, DataTable dataTable)
//{
// ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
// // 创建 Excel 包
// using (var package = new ExcelPackage())
// {
// // 添加一个工作表
// var worksheet1 = package.Workbook.Worksheets.Add("实验数据");
// // 写入表头
// for (int col = 0; col < dataTable.Columns.Count; col++)
// {
// worksheet1.Cells[1, col + 1].Value = dataTable.Columns[col].ColumnName; // 表头从第一行开始
// }
// // 写入数据
// for (int row = 0; row < dataTable.Rows.Count; row++)
// {
// for (int col = 0; col < dataTable.Columns.Count; col++)
// {
// worksheet1.Cells[row + 2, col + 1].Value = dataTable.Rows[row][col]; // 数据从第二行开始
// }
// }
// // 遍历每个 List<List<float>>,生成一个 Sheet
// for (int sheetIndex = 0; sheetIndex < data.Count; sheetIndex++)
// {
// // 添加一个工作表,命名为 1, 2, 3, ...
// var worksheet = package.Workbook.Worksheets.Add((sheetIndex + 1).ToString());
// // 定义表头
// string[] headers = {"时间",
// "室内气溶胶浓度", "口罩内气溶胶浓度", "泄露率",
// "室内CO2浓度", "口罩内CO2浓度", "室内氧浓度", "室内温度", "室内湿度"
// };
// // 写入表头
// for (int col = 0; col < headers.Length; col++)
// {
// worksheet.Cells[1, col + 1].Value = headers[col]; // 表头从第一行开始
// }
// for (int i = 0; i < timeList.Count; i++)
// {
// List<string> timeList_Each = timeList[i]; // 获取当前列的数据
// for (int j = 0; j < timeList_Each.Count; j++)
// {
// worksheet.Cells[j + 2, 1].Value = timeList_Each[j]; // 时间从第二行开始
// }
// }
// // 获取当前 Sheet 的数据
// List<List<float>> sheetData = data[sheetIndex];
// // 写入数据
// for (int row = 0; row < sheetData.Count; row++)
// {
// for (int col = 0; col < sheetData[row].Count; col++)
// {
// worksheet.Cells[row + 1, col + 2].Value = sheetData[row][col]; // 数据从第一行第一列开始
// }
// }
// }
// // 保存 Excel 文件
// SaveFileDialog saveFileDialog = new SaveFileDialog
// {
// Filter = "Excel Files|*.xlsx",
// Title = "保存 Excel 文件"
// };
// if (saveFileDialog.ShowDialog() == DialogResult.OK)
// {
// FileInfo fileInfo = new FileInfo(saveFileDialog.FileName);
// package.SaveAs(fileInfo);
// MessageBox.Show("数据导出成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// }
//}
/// <summary>
/// 所有实验数据导出EXCLE
/// </summary>
/// <param name="dataTable"></param>
/// <param name="stringData"></param>
/// <param name="floatData"></param>
public void ExportToExcel(DataTable dataTable, List<List<string>> stringData, List<List<List<float>>> floatData)
{
// 创建 Excel 包
using (var package = new ExcelPackage())
{
// 1. 将 DataTable 数据导入第一个工作表
var firstWorksheet = package.Workbook.Worksheets.Add("DataTable");
// 写入表头
for (int col = 0; col < dataTable.Columns.Count; col++)
{
firstWorksheet.Cells[1, col + 1].Value = dataTable.Columns[col].ColumnName;
}
// 写入数据
for (int row = 0; row < dataTable.Rows.Count; row++)
{
for (int col = 0; col < dataTable.Columns.Count; col++)
{
firstWorksheet.Cells[row + 2, col + 1].Value = dataTable.Rows[row][col];
}
}
// 2. 根据 List<List<string>> 的 Count 生成同等数量的工作表
for (int sheetIndex = 0; sheetIndex < stringData.Count; sheetIndex++)
{
// 添加工作表,命名为 1, 2, 3, ...
var worksheet = package.Workbook.Worksheets.Add((sheetIndex + 1).ToString());
//"姓名","性别","年龄","身份证号码","工作单位","工龄",
// 定义表头
string[] headers = {
"时间", "室内气溶胶浓度", "口罩内气溶胶浓度", "泄露率",
"室内CO2浓度", "口罩内CO2浓度", "室内氧浓度", "室内温度", "室内湿度"
};
// 写入表头
for (int col = 0; col < headers.Length; col++)
{
worksheet.Cells[1, col + 1].Value = headers[col];
}
// 获取当前 Sheet 的字符串数据和浮点数数据
List<string> currentStringData = stringData[sheetIndex];
List<List<float>> currentFloatData = floatData[sheetIndex];
// 写入 List<List<string>> 数据到第一列
for (int row = 0; row < currentStringData.Count; row++)
{
worksheet.Cells[row + 2, 1].Value = currentStringData[row];
}
// 写入 List<List<List<float>>> 数据到第二列开始
// 写入数据(从第二行开始)
for (int col = 0; col < currentFloatData.Count; col++)
{
List<float> columnData = currentFloatData[col]; // 获取当前列的数据
for (int row = 0; row < columnData.Count; row++)
{
worksheet.Cells[row + 2, col + 2].Value = columnData[row]; // 数据从第二行开始
}
}
}
// 保存 Excel 文件
SaveFileDialog saveFileDialog = new SaveFileDialog
{
Filter = "Excel Files|*.xlsx",
Title = "保存 Excel 文件"
};
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
FileInfo fileInfo = new FileInfo(saveFileDialog.FileName);
package.SaveAs(fileInfo);
MessageBox.Show("数据导出成功!");
}
}
}
//将excle数据导出到datatable
}
}

View File

@@ -0,0 +1,159 @@
using OfficeOpenXml;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;
namespace .Excle
{
internal class UserExcleHelper
{ //文件路径
static string path = Application.StartupPath + @"\UserExcleHelper.xlsx";
//向表格中写入用户数据
public void WriteData(string username, string password, string quanxian)
{
bool isHave = false;
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
//创建Excel对象
ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(path));
// 获取第一个工作表,如果不存在则创建
ExcelWorksheet worksheet;
if (package.Workbook.Worksheets.Count == 0)
{
worksheet = package.Workbook.Worksheets.Add("用户表");
worksheet.Cells[1, 1].Value = "用户名";
worksheet.Cells[1, 2].Value = "密码";
worksheet.Cells[1, 3].Value = "用户权限";
worksheet.Cells[2, 1].Value = "admin";
worksheet.Cells[2, 2].Value = "admin123456";
worksheet.Cells[2, 3].Value = "管理员";
}
else
{
worksheet = package.Workbook.Worksheets[0];
}
//判断用户名是否存在
for (int i = 2; i <= worksheet.Dimension.Rows; i++)
{
if (worksheet.Cells[i, 1].Value.ToString() == username)
{
isHave = true;
break;
}
}
if (isHave)
{
MessageBox.Show("用户名已存在!");
return;
}
else
{
int row = worksheet.Dimension.Rows + 1;
worksheet.Cells[row, 1].Value = username;
worksheet.Cells[row, 2].Value = password;
worksheet.Cells[row, 3].Value = quanxian;
//保存并关闭文件
package.Save();
}
}
//读取表格用户名数据
public List<string> ReadUserNameData()
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
//创建Excel对象
ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(path));
// 获取第一个工作表,如果不存在则创建
ExcelWorksheet worksheet;
if (package.Workbook.Worksheets.Count == 0)
{
// WriteData("","","");
return null;
}
else
{
worksheet = package.Workbook.Worksheets[0];
}
List<string> list = new List<string>();
for (int i = 2; i <= worksheet.Dimension.Rows; i++)
{
list.Add(worksheet.Cells[i, 1].Value.ToString());
}
return list;
}
//读取所有单元格信息并存放在datatable中
public DataTable ReadUserData()
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
//创建Excel对象
ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(path));
// 获取第一个工作表,如果不存在则创建
ExcelWorksheet worksheet;
if (package.Workbook.Worksheets.Count == 0)
{
return null;
}
else
{
worksheet = package.Workbook.Worksheets[0];
}
DataTable dt = new DataTable();
dt.Columns.Add("用户名");
dt.Columns.Add("密码");
dt.Columns.Add("用户权限");
for (int i = 2; i <= worksheet.Dimension.Rows; i++)
{
DataRow dr = dt.NewRow();
dr["用户名"] = worksheet.Cells[i, 1].Value.ToString();
dr["密码"] = worksheet.Cells[i, 2].Value.ToString();
dr["用户权限"] = worksheet.Cells[i, 3].Value.ToString();
dt.Rows.Add(dr);
}
return dt;
}
//修改用户信息
public void UpdateUserData(int index, string username, string password, string quanxian)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
//创建Excel对象
ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(path));
// 获取第一个工作表,如果不存在则创建
ExcelWorksheet worksheet;
if (package.Workbook.Worksheets.Count == 0)
{
return;
}
else
{
worksheet = package.Workbook.Worksheets[0];
}
worksheet.Cells[index, 1].Value = username;
worksheet.Cells[index, 2].Value = password;
worksheet.Cells[index, 3].Value = quanxian;
//保存并关闭文件
package.Save();
}
//删除用户信息
public void DeleteUserData(int index)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
//创建Excel对象
ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(path));
// 获取第一个工作表,如果不存在则创建
ExcelWorksheet worksheet;
if (package.Workbook.Worksheets.Count == 0)
{
return;
}
else
{
worksheet = package.Workbook.Worksheets[0];
}
//删除指定行
worksheet.DeleteRow(index);
//保存并关闭文件
package.Save();
}
}
}