我想写一个C〜控制台应用程序,它将从Excel表格中读取数据。我已经看到了一些教程,告诉我们如何从excel表格中读取数据,但是我找不到的是如何读取样式,如果有的话应用于文本。从excel中读取数据,包括应用于它的样式
如果您看到excel图像,它的词语绿色是绿色,而黄色是粗体。我希望C#应该能够选择样式,所以我可以将其转换为HTML样式。
我愿意向任何第三方库以及
我想写一个C〜控制台应用程序,它将从Excel表格中读取数据。我已经看到了一些教程,告诉我们如何从excel表格中读取数据,但是我找不到的是如何读取样式,如果有的话应用于文本。从excel中读取数据,包括应用于它的样式
如果您看到excel图像,它的词语绿色是绿色,而黄色是粗体。我希望C#应该能够选择样式,所以我可以将其转换为HTML样式。
我愿意向任何第三方库以及
您应该能够使用CellFormat.Font物业,以获得一个Font对象,从中可以获取字体的颜色和样式的细胞。
https://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.cellformat.font.aspx
如果你想要得到的风格细胞的部分,而不是整个小区中的例子,你可以使用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。
使用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项目网站的代码示例。他们很好地说明了图书馆的用法。