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> data, List 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 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>> data, List> 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>,生成一个 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 timeList_Each = timeList[i]; // 获取当前列的数据 // for (int j = 0; j < timeList_Each.Count; j++) // { // worksheet.Cells[j + 2, 1].Value = timeList_Each[j]; // 时间从第二行开始 // } // } // // 获取当前 Sheet 的数据 // List> 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); // } // } //} /// /// 所有实验数据导出EXCLE /// /// /// /// public void ExportToExcel(DataTable dataTable, List> stringData, List>> 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> 的 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 currentStringData = stringData[sheetIndex]; List> currentFloatData = floatData[sheetIndex]; // 写入 List> 数据到第一列 for (int row = 0; row < currentStringData.Count; row++) { worksheet.Cells[row + 2, 1].Value = currentStringData[row]; } // 写入 List>> 数据到第二列开始 // 写入数据(从第二行开始) for (int col = 0; col < currentFloatData.Count; col++) { List 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 } }