从excel读取数据,包括应用于它的样式

时间:2016-02-05 15:29:37

标签: c# excel

我正在尝试编写一个C语言控制台应用程序,它将从Excel工作表中读取数据。我已经看过几个教程,告诉我们如何从excel表中读取数据,但有一点我找不到的是如何应用于文本时如何阅读样式。

enter image description here

如果您看到excel图像,则字绿色为绿色,黄色为粗体。我希望C#应该能够选择样式,所以我可以将它转换为HTML样式。

我也对任何第三方图书馆开放

3 个答案:

答案 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项目网站以获取代码示例。它们很好地说明了图书馆的用法。