繁体   English   中英

SQL 使用 Epplus 查询 C# 中的 Excel

[英]SQL Query to Excel in C# using Epplus

我一直在努力解决这个问题。 我正在尝试将 sql 查询中的字符串和列名写入 excel 文档。 但我只写了行。 如何修复代码以编写所有行和列?

 var Template = new FileInfo(@"C:\Temp\XLS\New.xlsx"); var xlPackage = new ExcelPackage(Template); var wsCards = xlPackage.Workbook.Worksheets.Add(NAME_WORKSHEET); using (SqlConnection sqlConn = new SqlConnection(ConnectionString)) { sqlConn.Open(); using (SqlCommand command = new SqlCommand(SQL_WORKSHEET, sqlConn)) { var reader = command.ExecuteReader(); int row = 1; DataTable schemaTable = reader.GetSchemaTable(); foreach (DataRow rw in schemaTable.Rows) { foreach (DataColumn column in schemaTable.Columns) { if (column.ColumnName == "ColumnName") { wsCards.Cells["A1"].Value = rw[column]; } } } while (reader.Read()) { row++; for (int col = 1; col <= reader.FieldCount; col++) { wsCards.Cells[row, col].Value = reader.GetValue(col - 1); } } xlPackage.SaveAs(Template); xlPackage.Dispose(); } }

 var Template = new FileInfo(@"C:\Temp\XLS\New.xlsx"); var xlPackage = new ExcelPackage(Template); var wsCards = xlPackage.Workbook.Worksheets.Add(NAME_WORKSHEET); using (SqlConnection sqlConn = new SqlConnection(ConnectionString)) { sqlConn.Open(); using (SqlCommand command = new SqlCommand(SQL_WORKSHEET, sqlConn)) { var reader = command.ExecuteReader(); int row = 1,col=1; DataTable schemaTable = reader.GetSchemaTable(); //foreach (DataRow rw in schemaTable.Rows) //{ // Write the headers to the first row foreach (DataColumn column in schemaTable.Columns) { // Condition Will only be required if you want to write // specific column names //if (column.ColumnName == "ColumnName") //{ wsCards.Cells[1,col].Value = rw[column].ColumnName; col++; //} } //} while (reader.Read()) { row++; for ( col = 1; col <= reader.FieldCount; col++) { wsCards.Cells[row, col].Value = reader.GetValue(col - 1); } } xlPackage.SaveAs(Template); xlPackage.Dispose(); } }

此代码将在 excel 表的第一行写入来自架构的标题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM