C#OpenXml Excel创建 - 我可以将其设置为“格式化为表格”吗?

时间:2017-03-10 21:20:55

标签: c# excel openxml openxml-sdk

当我使用 DocumentFormat.OpenXml 创建Excel工作表时,是否有任何方法可以指定我希望一系列单元格(实际上是整个工作表)位于“格式为表格”( CTRL + T)表示?或者这在OpenXML库中不可用?我似乎找不到任何说法的东西。谢谢。

1 个答案:

答案 0 :(得分:0)

虽然我非常确定您可以完全使用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文档 example of output from test program

我希望这有帮助!