2012-06-06 149 views

回答

2

我還沒有使用的API,但如果你不能找到一個辦法,你這是怎麼可以用C#做​​:

//http://www.mvps.org/dmcritchie/excel/colors.htm 
    private void setCellColor(Microsoft.Office.Interop.Excel.Range cell, int index) 
    { 
     cell.Interior.ColorIndex = index; 
    } 
0

可以使用TFlxFormat類應用顏色。使用這個類你可以應用任何你想要的格式。

5

我有同樣的問題,我試圖設置單元格的背景顏色。我從來沒有設法直接設置它,但我設法設置單元格的FillPattern,它實際上設置了背景顏色。

在這裏我有一個私人的方法,設置4個不同的背景顏色,我打算使用。請注意,當您添加樣式時,您可以直接將它們添加到Excel文件中。這就是爲什麼我將excelFile傳遞給此方法,然後將excelFile返回。在使用樣式之前,您必須將樣式添加到excelFile中。

 private XlsFile SetUpBackgroundColours(XlsFile excelFile) 
    { 
     var patternStyle = TFlxPatternStyle.Solid; 

     TFlxFormat format = excelFile.GetDefaultFormat; 
     format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.Yellow }; //1 
     format.VAlignment = TVFlxAlignment.top; 
     format.HAlignment = THFlxAlignment.left; 
     excelFile.AddFormat(format); 

     format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.LightBlue }; //2 
     format.VAlignment = TVFlxAlignment.top; 
     format.HAlignment = THFlxAlignment.left; 
     excelFile.AddFormat(format); 

     format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.LightGray }; //3 
     format.VAlignment = TVFlxAlignment.top; 
     format.HAlignment = THFlxAlignment.left; 
     excelFile.AddFormat(format); 

     format.FillPattern = new TFlxFillPattern { Pattern = patternStyle, FgColor = Color.White }; //4 
     format.VAlignment = TVFlxAlignment.top; 
     format.HAlignment = THFlxAlignment.left; 
     excelFile.AddFormat(format); 

     return excelFile; 
    } 

這將成立4種新的樣式,然後我就可以參考使用它們的添加順序的索引。與FLEXCEL該指數從1開始

所以,那麼當你在添加值您的單元格使用SetCellValue方法,您可以提供已添加的樣式的索引以更改背景顏色。下面顯示的示例如何做到這一點:

excelFile.SetCellValue(rowNumber, columnNumber, "Some text for the cell", 1) 

當你看到1作爲方法的最後一個值,這個1是指我加入到使用SetUpBackgroundColours Excel文件中的第一個樣式()方法。

如果我想我的手機有一個lighgray顏色我會用3而不是1如下:

excelFile.SetCellValue(rowNumber, columnNumber, "Some text for the cell", 3) 

一些額外的代碼,顯示呼叫SetUpBackgroundColours:

var excelFile = new XlsFile(true); 
excelFile.NewFile(someList.Count() + 1, TExcelFileFormat.v2007); 
var sheetIndex = 0; 
excelFile = SetUpBackgroundColours(excelFile); 

excelFile.SetCellValue(1, 1, "Some text for the cell A1", 1) //cell colour will be yellow 
excelFile.SetCellValue(2, 2, "Some text for the cell B1", 2) //cell colour will be lightblue 
+0

這個答案是好,我的關鍵問題是設置「背景」顏色,你實際上需要一個TFlxFormat對象,其FillPattern.Pattern是TFlxPatternStyle.Solid,然後有點混淆你需要設置FgColor屬性爲你想要的顏色的背景。開發者在這裏解釋它:[bgColor vs fgColor](http://www.tmssoftware.com/SITE/forum/forum_posts.asp?TID=5743&KW=background&PID=21596&title=bgcolor-vs-fgcolor#21596) – Shaun

相關問題