我正在使用NPOI从Asp.Net MVC应用程序输出excel并且与纯文本一起工作得非常好但是现在已经被要求添加格式并且我遇到问题我需要有一个单元格,粗体文本后跟非粗体文本.例如
这个文字粗体 - 这个文字正常
我知道我可以给单元格一个单一的样式,但这无济于事我无论如何都看不到为单元格提供一些预先格式化的富文本.
我能想到的唯一可能的解决方案是分别创建两个单元格并将它们合并在一起,但这是否意味着格式化将会丢失?
我有没有办法在NPOI中错过这个?
我有这个代码,我知道它运行得很快
CopyAlltoClipboard(dataGridViewControl);
Microsoft.Office.Interop.Excel.Application xlexcel;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlexcel = new Excel.Application();
xlexcel.Visible = true;
xlWorkBook = xlexcel.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
xlWorkSheet.Name = page.Name;
Excel.Range CR = (Excel.Range)xlWorkSheet.Cells[1, 1];
CR.Select();
xlWorkSheet.PasteSpecial(CR, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true);
((Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Range["A1"]).EntireColumn.Delete(null); // delete the first column that has rows indexes
xlWorkBook.SaveAs(fileName);
private void CopyAlltoClipboard(DataGridView dataGridViewControl)
{
dataGridViewControl.SelectAll();
DataObject dataObj = dataGridViewControl.GetClipboardContent();
if (dataObj != null)
Invoke((Action)(() => { Clipboard.SetDataObject(dataObj); }));
}
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但它只复制值是excel,也不复制单元格格式(换行文本,背景颜色,字体,边框等)任何人都可以帮我这个吗?如何完成此代码具有DataGridView中的确切格式?
我们使用CellFormatting事件在我们的应用程序中为各种网格中的单元格着色.
我们有一些通用的代码可以处理导出到Excel(和打印),但它在Black&White中执行.现在我们想要更改它并从网格中获取颜色.
这个问题和答案有助于(并且有效)......除了大网格的问题超出了单个屏幕.网格中尚未显示的部分(逻辑上)从未获取其CellFormatting代码,因此它们的基础颜色永远不会被设置.其结果是,在Excel中的颜色编码fizzles了一半下来的页面.
似乎有三种解决方案:
1)告诉用户在导出到Excel之前必须滚动到网格的所有部分.哈!不是一个严肃的解决方
2)在执行导出到Excel之前,以编程方式滚动到网格的所有部分.只比(1)少可怕
3)在我们的导出到Excel代码中,在顶部触发一些东西,告诉DataGridView绘制/格式化整个区域,例如
MyDataGridView.FormatAllCells()
Run Code Online (Sandbox Code Playgroud)
有没有像这样的东西?
哦,还有第四个选项,但这将涉及触及大量现有代码:
4)停止使用CellFormatting事件,在加载时格式化单元格.问题是我们必须在我们的应用程序中重新设置每个网格,因为CellFormatting是我们自年点以来完成它的方式.
的cellForRowAtIndexPath:
cell.textLabel.text工作正常.
滚动后UILabel重叠.这是代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell==nil)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
// I have tried it by removing views and without. No difference.
NSArray *viewsToRemove = [self.tableView subviews];
for (UITableView *table in viewsToRemove)
{
[table removeFromSuperview];
}
}
NSManagedObject *managedObject = [newClass objectAtIndex:indexPath.row];
NSString *entityName= [[managedObject entity]name];
cell.textLabel.text = [NSString stringWithFormat:@"%@ %i", entityName, [indexPath row]];
cell.textLabel.font=[UIFont systemFontOfSize:14.0];
NSDate *date = [managedObject valueForKey:@"lastmoddate"]; …Run Code Online (Sandbox Code Playgroud) 我正在使用openpyxl创建一个excel表.一些单元格代表货币价值.如何将单元格的格式更改为"货币"类型,即我希望在数字后面显示"€"符号.
我必须根据单元格的值格式化(backcolor,forecolor,font style)radgrid的单元格.
例如,如果值为负,则将该单元格的前景颜色设置为红色.
任何人都可以告诉我这是如何实现的?
我使用ngGrid来显示我的数据.我想将cellFilter和cellTemplate一起用于特定列,但似乎它们不能一起工作.当我单独使用cellFilter或cellTemplate时,它们完美无缺.基本上,我想以这种方式格式化单元格的值(例如500000 - > 500,000; 1000000 - > 1,000,000),我也希望以红色显示负值.我怎么解决这个问题?谢谢!
$scope.gridOptions = {
data: 'data',
columnDefs: [
{
field: 'Settled',
cellFilter: 'number',
cellTemplate: '<div ng-class="{red: row.getProperty(col.field) < 0}"><div class="ngCellText">{{row.getProperty(col.field)}}</div></div>'
}]
}
Run Code Online (Sandbox Code Playgroud) celltemplate cell-formatting angularjs ng-grid angular-ui-grid
背景
我有一个Excel文件(xlxs),其中包含许多日期时间和小数,我想将其转换为二维字符串数组.数组中的字符串应该与用户将其输入到Excel中完全一致.为此,我使用NPO版本2.2.1和C#.
请注意,示例中的A列格式化为Excel中的日期!
COLUMN A COLUMN B
2016-07-20 -46,95
2016-07-20 283,59
2016-07-20 -46,95
2016-07-20 52194,64
Run Code Online (Sandbox Code Playgroud)
我有一个泛型方法ConvertCellToString(),它将一个单元格转换为正确的字符串表示形式:
private string GetCellAsString(ICell cell)
{
switch (cell.CellType)
{
case CellType.Boolean:
return cell.BooleanCellValue.ToString();
case CellType.Error:
return cell.ErrorCellValue.ToString();
case CellType.Formula:
return cell.CellFormula.ToString();
//ALL CELLS IN THE EXEMPEL ARE NUMERIC AND GOES HERE
case CellType.Numeric:
return cell.NumericCellValue.ToString();
case CellType.String:
return cell.StringCellValue.ToString();
case CellType.Blank:
case CellType.Unknown:
default:
return "";
}
}
Run Code Online (Sandbox Code Playgroud)
但是,由于即使是datetime单元格也是数字单元格,此解决方案会导致下面的所有日期错误地表示为数字而不是日期("21672"而不是"2016-07-20"等)
下面的方法需要区分具有日期时间的数字单元格与具有数字的单元格.NPOI有没有办法做到这一点?我宁愿不去解析字符串,特别是因为NPIOs cell.ToString()返回可怕的"2016-jan-20"格式,如果它是一个日期.
我几乎被困在这里所以非常感谢帮助!必须有一些明显的最佳实践,我找不到!
我正在尝试使用 Python Pandas ExcelWriter 将背景单元格颜色添加到单元格范围。这是我到目前为止所拥有的:
pivotChartsTab = pd.read_sql(sql4, conn)
import pandas.io.formats.excel
pandas.io.formats.excel.header_style = None
pivotChartsTab.to_excel(writer, 'Pivot Tables', index=False)
#Format sheets
workbook = writer.book
format1 = workbook.add_format({'num_format': '#,##'})
format2 = workbook.add_format({'num_format': '#,##0.00'})
format3 = workbook.add_format({'num_format': '0%'})
format4 = workbook.add_format()
format4.set_pattern(1)
format4.set_bg_color('green')
#format Pivot Tables
worksheet = writer.sheets['Pivot Tables']
for i, col in enumerate(pivotChartsTab.columns):
if i == 0:
worksheet.set_column(i, i, 20)
elif i == 1:
worksheet.set_column(i, i, 15)
elif i == 2:
worksheet.set_column(i, i, 18)
elif i == 3:
worksheet.set_column(i, i, 20, …Run Code Online (Sandbox Code Playgroud) 我有一个VBA脚本,可以将长字符串插入Excel单元格.在某些情况下,字符串以a开头=.似乎Excel将此解释为公式,并且Out of Memory由于公式的内存限制而出现错误.
我如何告诉Excel我正在写一个值,而不是一个公式?目前,我这样做:
ws.Range("A" & row) = Mid(xml, first, CHUNK_SIZE)
Run Code Online (Sandbox Code Playgroud)
我尝试了以下代码,但它不起作用......
ws.Range(...).Value = ....
Run Code Online (Sandbox Code Playgroud) cell-formatting ×10
c# ×3
excel ×3
datagridview ×2
npoi ×2
python ×2
.net ×1
angularjs ×1
celltemplate ×1
currency ×1
datetime ×1
ios ×1
ng-grid ×1
objective-c ×1
openpyxl ×1
pandas ×1
radgrid ×1
telerik ×1
uitableview ×1
vba ×1
winforms ×1