我正在尝试编写一个C语言控制台应用程序,它将从Excel工作表中读取数据。我已经看过几个教程,告诉我们如何从excel表中读取数据,但有一点我找不到的是如何应用于文本时如何阅读样式。
如果您看到excel图像,则字绿色为绿色,黄色为粗体。我希望C#应该能够选择样式,所以我可以将它转换为HTML样式。
我也对任何第三方图书馆开放
答案 0 :(得分:0)
您应该能够使用CellFormat.Font属性来获取Font对象,从中可以获取单元格中字体的颜色和样式。
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.cellformat.font.aspx
答案 1 :(得分:0)
如果要获取单元格部分的样式而不是示例中的整个单元格样式,可以使用Excel.Range.Characters
索引器来获取Characters
对象。此对象具有属性Font
,您可以使用该属性访问实际样式信息。这看起来像这样:
var xlApp = new Application();
var workbook = xlApp.Workbooks.Open("c:\\temp\\exceltest.xlsx");
Worksheet sheet = workbook.Sheets[1];
Range cell = sheet.Cells[1, 1]; // get first cell as an example
int textLength = range.Text.ToString().Length;
for (int charCount = 1; charCount <= textLength; charCount++)
{
Characters character = cell.Characters[charCount, 1];
bool bold = (bool)character.Font.Bold;
bool italic = (bool)character.Font.Italic;
Color fontColor = System.Drawing.ColorTranslator.FromOle((int)character.Font.Color);
}
请注意,您必须添加对Microsoft.Office.Interop.Excel
的引用,并且需要安装Excel。
答案 2 :(得分:0)
使用EPPlus:
string filePath = "...";
var file = new System.IO.FileInfo(filePath);
using (ExcelPackage p = new ExcelPackage(file)) {
var ws = p.Workbook.Worksheets[1];
var style = ws.Cells[1, 1].Style;
}
检查EPPlus项目网站以获取代码示例。它们很好地说明了图书馆的用法。