把数据倒出到Excel,怎样设置某个单元格的格式为货币型且以“¥”开头?最好保留两位小数。
也就是把。数据0.30倒入到Excel,在Excel中显示¥0.30,且单元格格式是货币型
我倒入以后发现显示也是¥0.30,但单元格左上角有个很小的绿色三角号,鼠标移上去有个叹号,且不能累加。我想应该是没有辨别该单元格的格式。
sheet[count, 4].Value="¥"+Convert.ToDouble(myCurrentrow111["Call_Pay"]).ToString"0.00");
会出现此情况。
也就是把。数据0.30倒入到Excel,在Excel中显示¥0.30,且单元格格式是货币型
我倒入以后发现显示也是¥0.30,但单元格左上角有个很小的绿色三角号,鼠标移上去有个叹号,且不能累加。我想应该是没有辨别该单元格的格式。
sheet[count, 4].Value="¥"+Convert.ToDouble(myCurrentrow111["Call_Pay"]).ToString"0.00");
会出现此情况。
解决方案 »
- XML文档只允许有一个根结点?
- C# 读取超大TXT文件方法
- 如何验证类中各属性的合法性?例子见正文
- 一个简单的问题,请老师指点。
- 加分(我只能加100了),再求remoting或 Web Service Software Factory 代码
- C#中是否有C++中的映射?
- 求助;C#写Socket通信时,怎么传输结构体呢?
- 为什么每个ASP.NET文件都要与一个.CS文件搭配着?
- 在C# winform 中使用水晶报表打印,能否调整整体打印内容的位置。
- 谁能提供些dotnet下多线程,守护线程,线程引擎方面的资料,!
- 请问SMTP服务器是怎么样把邮件传送到POP3服务器的?急!!!!,可以说说具体的命令
- 请教retrun的用法
using System.Data;
using Excel;namespace LogicLayer
{
/// <summary>
/// OutputExcel 的摘要说明
/// </summary>
public class OutputExcel
{
public OutputExcel(DataView dv,string str)
{
//
// TODO: 在此处添加构造函数逻辑
//
Excel.Application excel;
int rowIndex=4;
int colIndex=1; Excel._Workbook xBk;
Excel._Worksheet xSt; excel= new Excel.ApplicationClass();;
xBk = excel.Workbooks.Add(true);
xSt = (Excel._Worksheet)xBk.ActiveSheet; //
//取得标题
//
foreach(DataColumn col in dv.Table.Columns)
{
colIndex++;
excel.Cells[4,colIndex] = col.ColumnName;
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[4,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置标题格式为居中对齐
} //
//取得表格中的数据
//
foreach(DataRowView row in dv)
{
rowIndex ++;
colIndex = 1;
foreach(DataColumn col in dv.Table.Columns)
{
colIndex ++;
if(col.DataType == System.Type.GetType("System.DateTime"))
{
excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置日期型的字段格式为居中对齐
}
else
if(col.DataType == System.Type.GetType("System.String"))
{
excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();
xSt.get_Range(excel.Cells[rowIndex,colIndex],excel.Cells[rowIndex,colIndex]).HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐
}
else
{
excel.Cells[rowIndex,colIndex] = row[col.ColumnName].ToString();
}
}
}
//
//加载一个合计行
//
int rowSum = rowIndex + 1;
int colSum = 2;
excel.Cells[rowSum,2] = "合计";
xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
//
//设置选中的部分的颜色
//
xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();
xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Interior.ColorIndex = 19;//设置为浅黄色,共计有56种
//
//取得整个报表的标题
//
excel.Cells[2,2] = str;
//
//设置整个报表的标题格式
//
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;
//
//设置报表表格为最适应宽度
//
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();
//
//设置整个报表的标题为跨列居中
//
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();
xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment = Excel.XlHAlign.xlHAlignCenterAcrossSelection;
//
//绘制边框
//
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle = 1;
xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,2]).Borders[Excel.XlBordersIndex.xlEdgeLeft].Weight = Excel.XlBorderWeight.xlThick;//设置左边线加粗
xSt.get_Range(excel.Cells[4,2],excel.Cells[4,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeTop].Weight = Excel.XlBorderWeight.xlThick;//设置上边线加粗
xSt.get_Range(excel.Cells[4,colIndex],excel.Cells[rowSum,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeRight].Weight = Excel.XlBorderWeight.xlThick;//设置右边线加粗
xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,colIndex]).Borders[Excel.XlBordersIndex.xlEdgeBottom].Weight = Excel.XlBorderWeight.xlThick;//设置下边线加粗
//
//显示效果
//
excel.Visible=true;
}
}
}这是一个导出为Excel的类,它有两个参数,一个是数据源DataView,一个是大标题string
Selection.NumberFormatLocal = "¥#,##0.00;¥-#,##0.00"
这样就可以了,改动这里的E8即可
((Excel.Range )(excel.Cells [i,j])).NumberFormatLocal = "¥#,##0.00_);[红色](¥#,##0.00)";
/////////
一定要给分哟!!别看简单,我做了测试程序,用了不少时间.