c# npoi

jordon_misd 2014-04-28 10:47:32
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
//using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using NPOI;
using NPOI.HPSF;
using NPOI.SS;
using NPOI.SS.Util;
using System.Windows.Forms;
//using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;

namespace ConsoleApplication1
{
class Program
{
// public string str = "";
static void Main(string[] args)
{
// Program p = new Program();
// button2_Click();
}


//创建xls文件
//private void button1_Click(object sender, EventArgs e)
//{
// //创建工作薄
// HSSFWorkbook wk = new HSSFWorkbook();
// //创建一个名称为mySheet的表
// ISheet tb = wk.CreateSheet("mySheet");
// //创建一行,此行为第二行
// IRow row = tb.CreateRow(1);
// for (int i = 0; i < 20; i++)
// {
// ICell cell = row.CreateCell(i); //在第二行中创建单元格
// cell.SetCellValue(i);//循环往第二行的单元格中添加数据
// }
// using (FileStream fs = File.OpenWrite(@"c:/myxls.xls")) //打开一个xls文件,如果没有则自行创建,如果存在myxls.xls文件则在创建是不要打开该文件!
// {
// wk.Write(fs); //向打开的这个xls文件中写入mySheet表并保存。
// Console.WriteLine("提示:创建成功!");
// }
//}

private void button2_Click(object sender, EventArgs e)
{

StringBuilder sbr = new StringBuilder();
using (FileStream fs = File.OpenRead(@"e:/CO242.xls")) //打开myxls.xls文件
{

HSSFWorkbook wk = new HSSFWorkbook(fs); //把xls文件中的数据写入wk中
for (int i = 0; i < wk.NumberOfSheets; i++) //NumberOfSheets是myxls.xls中总共的表数
{
ISheet sheet = wk.GetSheetAt(i); //读取当前表数据
for (int j = 0; j <= sheet.LastRowNum; j++) //LastRowNum 是当前表的总行数
{
IRow row = sheet.GetRow(j); //读取当前行数据
if (row != null)
{
sbr.Append("-------------------------------------\r\n"); //读取行与行之间的提示界限
for (int k = 0; k <= row.LastCellNum; k++) //LastCellNum 是当前行的总列数
{
ICell cell = row.GetCell(k); //当前表格
if (cell != null)
{
sbr.Append(cell.ToString()); //获取表格中的数据并转换为字符串类型
}
}
}
}
}
}
sbr.ToString();
using (StreamWriter wr = new StreamWriter(new FileStream(@"c:/myText.txt", FileMode.Append))) //把读取xls文件的数据写入myText.txt文件中
{
wr.Write(sbr.ToString());
wr.Flush();
}
}


}
}


DLL 引用了 没有 任何错误提示


直接 连open 文件 都 打开不了 是什么原因

...全文
258 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jordon_misd 2014-04-28
  • 打赏
  • 举报
回复
引用 1 楼 lzf137927 的回复:
要看你用的npoi版本是什么~~试试这样写~ using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read)) { wk= new HSSFWorkbook(file); }
还是一样
jordon_misd 2014-04-28
  • 打赏
  • 举报
回复
引用 1 楼 lzf137927 的回复:
要看你用的npoi版本是什么~~试试这样写~ using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read)) { wk= new HSSFWorkbook(file); }
1.2.5
菜鸟上路 2014-04-28
  • 打赏
  • 举报
回复
要看你用的npoi版本是什么~~试试这样写~ using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read)) { wk= new HSSFWorkbook(file); }
wind_cloud2011 2014-04-28
  • 打赏
  • 举报
回复

就用你这个代码,路径中"/"换成"\"() 
 private void button1_Click(object sender, EventArgs e)
          {
              
              StringBuilder sbr = new StringBuilder();
              using (FileStream fs = File.OpenRead(@"e:\CO242.xls"))   //打开myxls.xls文件
              {
                  
                  HSSFWorkbook wk = new HSSFWorkbook(fs);   //把xls文件中的数据写入wk中
                  for (int i = 0; i < wk.NumberOfSheets; i++)  //NumberOfSheets是myxls.xls中总共的表数
                  {
                      ISheet sheet = wk.GetSheetAt(i);   //读取当前表数据
                      for (int j = 0; j <= sheet.LastRowNum; j++)  //LastRowNum 是当前表的总行数
                      {
                          IRow row = sheet.GetRow(j);  //读取当前行数据
                          if (row != null)
                          {
                              sbr.Append("-------------------------------------\r\n"); //读取行与行之间的提示界限
                              for (int k = 0; k <= row.LastCellNum; k++)  //LastCellNum 是当前行的总列数
                              {
                                  ICell cell = row.GetCell(k);  //当前表格
                                  if (cell != null)
                                  {
                                      sbr.Append(cell.ToString());   //获取表格中的数据并转换为字符串类型
                                  }
                              }
                          }
                      }
                  }
              }
              sbr.ToString();
              using (StreamWriter wr = new StreamWriter(new FileStream(@"c:\myText.txt", FileMode.Append)))  //把读取xls文件的数据写入myText.txt文件中
              {
                  wr.Write(sbr.ToString());
                  wr.Flush();
              }
          }

jordon_misd 2014-04-28
  • 打赏
  • 举报
回复
引用 8 楼 wind_cloud2011 的回复:
[quote=引用 7 楼 jordon_misd 的回复:]
[quote=引用 6 楼 wind_cloud2011 的回复:]
[quote=引用 5 楼 jordon_misd 的回复:]
[quote=引用 4 楼 wind_cloud2011 的回复:]
经过测试,代码没问题,能读取XLS文件,写到txt文件中,会不会是你的xls有问题,
代码你放在winform里测试一下


我到控制台 输出 没有玩过 winform 刚刚学习c# [/quote]
建立新项目,选窗体应用程序,放一个button控件,双击后放你的上述代码,[/quote]

怎么一运行就报错。。。 能把你的测试 文件打包 给我参考下吗?[/quote]
什么错误?[/quote]


jordon_misd 2014-04-28
  • 打赏
  • 举报
回复
wind_cloud2011 2014-04-28
  • 打赏
  • 举报
回复
引用 7 楼 jordon_misd 的回复:
[quote=引用 6 楼 wind_cloud2011 的回复:] [quote=引用 5 楼 jordon_misd 的回复:] [quote=引用 4 楼 wind_cloud2011 的回复:] 经过测试,代码没问题,能读取XLS文件,写到txt文件中,会不会是你的xls有问题, 代码你放在winform里测试一下
我到控制台 输出 没有玩过 winform 刚刚学习c# [/quote] 建立新项目,选窗体应用程序,放一个button控件,双击后放你的上述代码,[/quote] 怎么一运行就报错。。。 能把你的测试 文件打包 给我参考下吗?[/quote] 什么错误?
jordon_misd 2014-04-28
  • 打赏
  • 举报
回复
引用 6 楼 wind_cloud2011 的回复:
[quote=引用 5 楼 jordon_misd 的回复:] [quote=引用 4 楼 wind_cloud2011 的回复:] 经过测试,代码没问题,能读取XLS文件,写到txt文件中,会不会是你的xls有问题, 代码你放在winform里测试一下
我到控制台 输出 没有玩过 winform 刚刚学习c# [/quote] 建立新项目,选窗体应用程序,放一个button控件,双击后放你的上述代码,[/quote] 怎么一运行就报错。。。 能把你的测试 文件打包 给我参考下吗?
wind_cloud2011 2014-04-28
  • 打赏
  • 举报
回复
引用 5 楼 jordon_misd 的回复:
[quote=引用 4 楼 wind_cloud2011 的回复:] 经过测试,代码没问题,能读取XLS文件,写到txt文件中,会不会是你的xls有问题, 代码你放在winform里测试一下
我到控制台 输出 没有玩过 winform 刚刚学习c# [/quote] 建立新项目,选窗体应用程序,放一个button控件,双击后放你的上述代码,
jordon_misd 2014-04-28
  • 打赏
  • 举报
回复
引用 4 楼 wind_cloud2011 的回复:
经过测试,代码没问题,能读取XLS文件,写到txt文件中,会不会是你的xls有问题, 代码你放在winform里测试一下
我到控制台 输出 没有玩过 winform 刚刚学习c#
wind_cloud2011 2014-04-28
  • 打赏
  • 举报
回复
经过测试,代码没问题,能读取XLS文件,写到txt文件中,会不会是你的xls有问题, 代码你放在winform里测试一下

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧