• 主页
  • ASP
  • .NET Framework
  • Web Services
  • VB
  • VC
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • LINQ

求救一下,NPOI如何获取单元格自定义格式的内容

神码浮云 2019-07-09 05:11:25


这是客户给的数据文件,有很多,有一部份坐标设置了度分秒格式,我通过NPOI获取到值是一个整型值,这是不对的,请问一下如何才能获取到带格式的值呢?

网上找了很久,也调试试了各个方法,都没有解决,各位大侠,帮帮小弟,万分感谢!

protected void Button2_Click(object sender, EventArgs e)
{
string path = Server.MapPath("~\\Public\\test1.xls");

if (System.IO.File.Exists(path)) //判断文件是否存在
{
FileStream fs = File.OpenRead(path);
IWorkbook hssfworkbook;
try
{
hssfworkbook = new HSSFWorkbook(fs);
ISheet sheet = hssfworkbook.GetSheetAt(0);//读取第一个sheet
IEnumerator rows = sheet.GetRowEnumerator();
//得到Excel工作表的行
IRow headerRow = sheet.GetRow(0);
ICell cell = headerRow.GetCell(0);
String val = cell.ToString();
}
catch
{
}
fs.Close();
fs.Dispose();

}
}
...全文
1676 点赞 收藏 20
写回复
20 条回复
神码浮云 2019年07月11日
自己找到解决方法了,下面是答案,谢谢各位!
string formatString = cell.CellStyle.GetDataFormatString();
string value = cell.NumericCellValue.ToString(formatString);
参考地址: https://stackoverflow.com/questions/28714740/using-npoi-how-do-i-return-a-cell-value-as-it-has-been-formatted-by-excel
回复 点赞
神码浮云 2019年07月11日
引用 5 楼 ManBOyyy 的回复:
你這樣子試試 HSSFCellStyle cellStyle = hssfworkbook.CreateCellStyle(); HSSFDataFormat format = hssfworkbook.CreateDataFormat(); cellStyle.DataFormat = format.GetFormat("Hºmm.ss'"); cell.CellStyle=cellStyle;
protected void Button2_Click(object sender, EventArgs e)
    {
        string path = Server.MapPath("~\\Public\\test1.xls");

        if (System.IO.File.Exists(path)) //判断文件是否存在
        {
            FileStream fs = File.OpenRead(path);
            IWorkbook hssfworkbook;
            try
            {
                hssfworkbook = new HSSFWorkbook(fs);
                ISheet sheet = hssfworkbook.GetSheetAt(0);//读取第一个sheet
                IEnumerator rows = sheet.GetRowEnumerator();
                //得到Excel工作表的行 
                IRow headerRow = sheet.GetRow(0);
                ICell cell = headerRow.GetCell(0);

                HSSFCellStyle cellStyle = (HSSFCellStyle)hssfworkbook.CreateCellStyle();
                HSSFDataFormat format = (HSSFDataFormat)hssfworkbook.CreateDataFormat();
                cellStyle.DataFormat = format.GetFormat("###º##.###'"); //###"º"##"."###'  Hºmm.ss'
                cell.CellStyle = cellStyle;

                String val = cell.ToString();
            }
            catch
            {
            }
            fs.Close();
            fs.Dispose();

        }
    }
哥们,试了一下,不行哦,你有尝试过吗???
回复 点赞
爱生活爱敏敏 2019年07月11日
引用 19 楼 神码浮云 的回复:
[quote=引用 18 楼 爱生活爱敏敏 的回复:] 上面不是还有个导入的方法吗
没看出来,是怎么获取格式化的坐标,直接把答案说出来不行吗?谢谢![/quote] 对不起,我的帖子帮不了你。
回复 点赞
神码浮云 2019年07月11日
引用 18 楼 爱生活爱敏敏 的回复:
上面不是还有个导入的方法吗
没看出来,是怎么获取格式化的坐标,直接把答案说出来不行吗?谢谢!
回复 点赞
爱生活爱敏敏 2019年07月11日
上面不是还有个导入的方法吗
回复 点赞
神码浮云 2019年07月11日
引用 16 楼 爱生活爱敏敏 的回复:
https://blog.csdn.net/qq_42025804/article/details/95385624我的研究成果就在这了
没看出来哪里获取的? //单元格坐标 Point start = new Point(3, 0); Point end = new Point(5, 1) 这个吗?Point是什么?把获取的方法说一下吧,谢谢!
回复 点赞
Hello World, 2019年07月10日
既然已经知道数字怎样格式化显示的,只需要将其相同的转化即可。最简单的可以将数字转成字符,截取指定位置的内容出来再转数字就好了
回复 点赞
爱生活爱敏敏 2019年07月10日
https://blog.csdn.net/qq_42025804/article/details/95385624我的研究成果就在这了
回复 点赞
爱生活爱敏敏 2019年07月10日
引用 14 楼 神码浮云 的回复:
[quote=引用 13 楼 爱生活爱敏敏 的回复:] 还在加班吗老哥。。。
是的,你不是说有方法吗?[/quote] 我发个帖
回复 点赞
神码浮云 2019年07月10日
引用 13 楼 爱生活爱敏敏 的回复:
还在加班吗老哥。。。
是的,你不是说有方法吗?
回复 点赞
ManBOyyy 2019年07月10日
你這樣子試試
HSSFCellStyle cellStyle = hssfworkbook.CreateCellStyle();
HSSFDataFormat format = hssfworkbook.CreateDataFormat();
cellStyle.DataFormat = format.GetFormat("Hºmm.ss'");
cell.CellStyle=cellStyle;
回复 点赞
神码浮云 2019年07月10日
没有人遇到过这样的问题吗???
回复 点赞
爱生活爱敏敏 2019年07月10日
还在加班吗老哥。。。
回复 点赞
神码浮云 2019年07月10日
引用 11 楼 爱生活爱敏敏 的回复:
现在解决了吗,没解决可以发我有个法子。
没有哦,请说!
回复 点赞
神码浮云 2019年07月10日
这么冷淡嘛!
回复 点赞
神码浮云 2019年07月10日
等待大侠们来打救!!!
回复 点赞
神码浮云 2019年07月10日
引用 7 楼 Hello World, 的回复:
既然已经知道数字怎样格式化显示的,只需要将其相同的转化即可。最简单的可以将数字转成字符,截取指定位置的内容出来再转数字就好了
返回来的是正数,没有小数位的啊,怎么转换呢,不行吧!
回复 点赞
神码浮云 2019年07月09日
程序好多地方已经用了NPOI,要改成Aspose有点麻烦哦!
回复 点赞
qq_34137387 2019年07月09日
我之前遇到过这个问题,你使用 Aspose 这个插件试试
回复 点赞
神码浮云 2019年07月09日
我想获取度分秒的值,如:111º22.233',哪个整型无法转换经纬度。
回复 点赞
发动态
发帖子
.NET技术社区
创建于2007-09-28

4.9w+

社区成员

66.8w+

社区内容

.NET技术交流专区
社区公告
暂无公告