【问题标题】:C# OpenXml Excel Creation - can I set it to "Format as table"?C# OpenXml Excel 创建 - 我可以将其设置为“格式为表格”吗?
【发布时间】:2017-03-10 21:20:55
【问题描述】:
当我使用 DocumentFormat.OpenXml 创建 Excel 工作表时,有什么方法可以指定我希望一系列单元格(实际上是整个工作表)位于“表格格式”( CTRL+T) 表示?或者这在 OpenXML 库中不可用?我似乎找不到任何说这两种方式的东西。谢谢。
【问题讨论】:
标签:
c#
excel
openxml
openxml-sdk
【解决方案1】:
虽然我很确定您可以完全使用 OpenXML 库来做您想做的事情,但您也可以选择包含 ClosedXML 库,这使得使用 Excel 变得更加容易。
如果我正确理解您的问题,您只是在寻找某种数据集并将其作为表格转储到 Excel 文件中,在这种情况下,如果您可以将数据归结为 C# 中的 DataTable以下应该对您有所帮助
//create some dummy table for this test
DataTable table = new DataTable();
//make a few columns
table.Columns.AddRange(
new DataColumn[] { new DataColumn("Column 1",typeof(int)),
new DataColumn("Column 2", typeof(int)),
new DataColumn("Column 3", typeof(int)) }
);
//populate with some randomness
Random r = new Random();
for (int i = 0; i < 100; i++)
{
var newRow = table.NewRow();
newRow[0] = r.Next(0, 10);
newRow[1] = r.Next(0, 10);
newRow[2] = r.Next(0, 10);
table.Rows.Add(newRow);
}
//create workbook
XLWorkbook wb = new XLWorkbook();
var sheet = wb.AddWorksheet("My datatable");
//just showing how to add a bit of extra data to the sheet, not required
sheet.Cell(1, 1).SetValue<string>("Title: this is just a test");
sheet.Cell(1, 3).SetValue<string>("Date: " + DateTime.Now);
//dump table in sheet
sheet.Cell(2, 1).InsertTable(table);
sheet.Columns().AdjustToContents();
wb.SaveAs(@"c:\test\dtable.xlsx",false);
这将产生以下 Excel 文档
我希望这会有所帮助!