一、控制台输出
代码
#region 输出 DataTable
public static void print_DT(DataTable dt)
{
if (dt.Rows.Count > 0)
{
string columnName = string.Empty;
string line_str="",line = "-";
int long_number = 40;
for (int i = 0; i < dt.Columns.Count; i++)
{
columnName += dt.Columns[i].ColumnName.PadLeft(long_number, ' ') + " | ";
line_str += line.PadLeft(long_number, '-') + " | ";
}
Console.WriteLine(columnName);
Console.WriteLine(line_str);
foreach (DataRow row in dt.Rows)
{
string columnStr = string.Empty;
foreach (DataColumn column in dt.Columns)
{
columnStr += row[column].ToString().PadLeft(long_number, ' ') + " | ";
}
Console.WriteLine(columnStr);
}
}
}
#endregion
结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f8cc5abe80cbbaf39b60b05721144698.png)
二、excel
使用说明
- 先添加NuGet程序包
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ef153efaca781b97882546d346a4e59f.png)
- 安装下图第三方
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2e7f9913c438c78316b1d943f41882fd.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/698adba886c9f35fe219f8a1d9e8bacb.png)
上面配置完,即可使用下面的代码
1、读取excel
代码
public static System.Data.DataSet Get_Excel_Data(string excelFilePath)
{
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Sheets sheets;
Microsoft.Office.Interop.Excel.Workbook workbook = null;
object oMissiong = System.Reflection.Missing.Value;
DataSet dataSet = new DataSet();
string cellContent;
try
{
if (excel == null)
{
return null;
}
workbook = excel.Workbooks.Open(excelFilePath, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong,
oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong, oMissiong);
sheets = workbook.Worksheets;
for (int p = 1; p <= sheets.Count; p++)
{
System.Data.DataTable dt = new System.Data.DataTable();
Microsoft.Office.Interop.Excel.Worksheet workSheet = (Microsoft.Office.Interop.Excel.Worksheet)sheets.get_Item(p);
for (int j = 1; j <= workSheet.UsedRange.Columns.Count; j++)
{
Range _range = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[1, j];
if (_range.Text.ToString().Trim() == "")
dt.Columns.Add("EQUIPMENT");
else
dt.Columns.Add(_range.Text.ToString().Trim());
}
for (int i = 2; i <= workSheet.UsedRange.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
for (int j = 1; j <= workSheet.UsedRange.Columns.Count; j++)
{
Range _range = (Microsoft.Office.Interop.Excel.Range)workSheet.Cells[i, j];
cellContent = (_range.Value2 == null) ? "" : _range.Text.ToString().Trim();
dr[j - 1] = cellContent;
}
dt.Rows.Add(dr);
}
dataSet.Tables.Add(dt);
}
}
finally
{
workbook.Close(false, oMissiong, oMissiong);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
workbook = null;
excel.Workbooks.Close();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
excel = null;
GC.Collect();
GC.WaitForPendingFinalizers();
}
return dataSet;
}
2、输出excel
代码
#region 输出到excel
public static void dt_To_Excel(DataTable dt, bool isShow_Excel)
{
int row_number = dt.Rows.Count;
int col_number = dt.Columns.Count;
int col_Index = 0;
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Application.Workbooks.Add(true);
Microsoft.Office.Interop.Excel.Workbook workbook = excel.ActiveWorkbook;
Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.ActiveSheet;
excel.Visible = isShow_Excel;
Microsoft.Office.Interop.Excel.Range range;
foreach (DataColumn col in dt.Columns)
{
col_Index++;
excel.Cells[1, col_Index] = col.ColumnName;
}
object[,] objData = new object[row_number, col_number];
for (int r = 0; r < row_number; r++)
{
for (int c = 0; c < col_number; c++)
{
objData[r, c] = dt.Rows[r][c];
}
}
range = excel.get_Range((object)worksheet.Cells[2, 1], (object)worksheet.Cells[row_number + 1, col_number]);
range.NumberFormat = "@";
range.Value2 = objData;
excel.get_Range((object)worksheet.Cells[2, 1], (object)worksheet.Cells[row_number + 1, 1]).NumberFormat = "yyyy-m-d h:mm";
#region 此块注释,则不会自动关闭excel
workbook.Close(false, Type.Missing, Type.Missing);
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
workbook = null;
worksheet = null;
range = null;
excel = null;
GC.Collect();
#endregion
}
#endregion
结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/997db1fb6c67fdb06790b471d78f7121.png)