如何使用 SQL Server 2012 生成具有多个 sheet 的 Excel 文件?
How to generating Excel File with multi sheet by using SQL Server 2012?
我需要在 SQL Server 2012 中创建一个存储过程或查询以从 C# 代码中获取数据 table,并创建一个包含多个 sheet 的 Excel 文件]s 基于所述数据 table.
中存在的数据
以下面的数据为例,我有一个函数 GetDate
返回数据 table。
使用两个 sheet 创建文件 ABC.xlsx - 第一个 sheet 名称源和第二个 sheet 名称类型,并加载与每个 sheet 相关的数据基于数据。
所以结果将是一个新文件Abc.xlsx
,有两个sheet Source
和Types
,每个sheet 有一行数据。
public static DataTable GetData()
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("PartId", typeof(int));
dataTable.Columns.Add("Company", typeof(string));
dataTable.Columns.Add("Files", typeof(string));
dataTable.Columns.Add("Tab", typeof(string));
dataTable.Rows.Add(1222,"micro","Abc","source");
dataTable.Rows.Add(1321, "silicon", "Abc", "Types");
return dataTable;
}
SQL Server 2012 能否创建包含多个 sheet 的 Excel 文件?
我可以在 C# 中做到这一点,但从 SQL 我不能;那么我怎样才能通过任何方式从 SQL Server 2012 实现呢?
SQL 存储过程对此没有必要。您可以直接从 C# 迭代数据行创建 .xlsx 文件。类似于:
var xlApp = new Microsoft.Office.Interop.Excel.Application();
var workbook = xlApp.Workbooks.Add();
var data = GetData();
foreach (DataRow row in data.Rows)
{
var worksheet = xlApp.Worksheets.Add();
worksheet.Name = row["Tab"].ToString();
}
xlWorkbook.SaveAs("path.xlsx");
关于 Microsoft.Office.Interop here
的一些更详细的文档
就我个人而言,我会使用 NuGet 包来创建 .xlsx 文件,因为使用 Microsoft.Office.Interop 你需要 Excel 来自 Office 的 Excel 实际上安装在你 运行 的机器上代码(也许不会安装在您的部署服务器上,安装它可能会花费更多的钱)。
我个人对此的偏好是 this NuGet 包。
祝你好运!
我需要在 SQL Server 2012 中创建一个存储过程或查询以从 C# 代码中获取数据 table,并创建一个包含多个 sheet 的 Excel 文件]s 基于所述数据 table.
中存在的数据以下面的数据为例,我有一个函数 GetDate
返回数据 table。
使用两个 sheet 创建文件 ABC.xlsx - 第一个 sheet 名称源和第二个 sheet 名称类型,并加载与每个 sheet 相关的数据基于数据。
所以结果将是一个新文件Abc.xlsx
,有两个sheet Source
和Types
,每个sheet 有一行数据。
public static DataTable GetData()
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("PartId", typeof(int));
dataTable.Columns.Add("Company", typeof(string));
dataTable.Columns.Add("Files", typeof(string));
dataTable.Columns.Add("Tab", typeof(string));
dataTable.Rows.Add(1222,"micro","Abc","source");
dataTable.Rows.Add(1321, "silicon", "Abc", "Types");
return dataTable;
}
SQL Server 2012 能否创建包含多个 sheet 的 Excel 文件?
我可以在 C# 中做到这一点,但从 SQL 我不能;那么我怎样才能通过任何方式从 SQL Server 2012 实现呢?
SQL 存储过程对此没有必要。您可以直接从 C# 迭代数据行创建 .xlsx 文件。类似于:
var xlApp = new Microsoft.Office.Interop.Excel.Application();
var workbook = xlApp.Workbooks.Add();
var data = GetData();
foreach (DataRow row in data.Rows)
{
var worksheet = xlApp.Worksheets.Add();
worksheet.Name = row["Tab"].ToString();
}
xlWorkbook.SaveAs("path.xlsx");
关于 Microsoft.Office.Interop here
的一些更详细的文档就我个人而言,我会使用 NuGet 包来创建 .xlsx 文件,因为使用 Microsoft.Office.Interop 你需要 Excel 来自 Office 的 Excel 实际上安装在你 运行 的机器上代码(也许不会安装在您的部署服务器上,安装它可能会花费更多的钱)。
我个人对此的偏好是 this NuGet 包。
祝你好运!