2017-10-12 83 views
0

我想从我的WPF C#应用程序发送布尔值到Xcel文件,但内容显示为'TRUE'和'FALSE'作为文本而不是复选框。如何使用布尔值作为Excel中的复选框值C#

C#型号:

public class ExcelModel 
{ 
    public string ID { get; set; } 
    public string Title { get; set; } 
    public bool IsHotel { get; set; } 

} 

C#代码:

var dataList = new List<ExcelModel>() { new ExcelModel{ID = "1", Title = "Test1", IsHotel = True} };  

var workbook = new XLWorkbook();  //creates the workbook 
var wsDetailedData = workbook.AddWorksheet("Test"); //creates the worksheet with sheetname 'data' 

wsDetailedData.Cell(1, 1).InsertTable(dataList); //inserts the data to cell A1 including default column name 

wsDetailedData.Columns().AdjustToContents(); 

// wsDetailedData.Column. 
wsDetailedData.Rows().AdjustToContents(); 
workbook.SaveAs(MainWindow.appRoot + @"test.xlsx"); //saves the workbook 
+1

请告诉我们'dataList'是如何声明和填充的。 – mjwills

+2

您是否尝试过https://www.google.com.au/search?q=c%23+add+checkbox+to+excel+cell?他们工作? – mjwills

+0

我已经添加了'dataList'的声明号。我找不到任何与将工作列整个格式设置为复选框的XLWorkbook类有关的声明。 – Decoder94

回答

0

这是不可能的从ClosedXML库,你似乎可以用。

如果使用Microsoft.Office.Interop.Excel创建Excel,则可能会出现这种情况。 (但是您需要在运行程序的计算机上安装Office)。 请参阅:

https://stackoverflow.com/a/8936775/994679

如果这是不能接受的,它应该用OPENXML代替就可以了。但是你真的会把你的工作交给你,我找不到任何简单的例子。这里有一个家伙加入组合框的例子:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/4489302b-57a0-434f-b7ed-d8bb6479edf0/how-to-insert-a-combobox-in-a-spreadsheet-by-code-behind-c-using-open-xml-format-sdk?forum=oxmlsdk

你也许能够找出代码,如果你使用的OpenXML使用OpenXML的生产力工具。在那里你可以创建一个带有复选框的excel,并使用反射代码按钮来生成OpenXml代码来使用,尽管找到你需要使用的特定代码并理解如何正确地调整它可能仍然是一个挑战。

相关问题