C#利用npoi在已有多个Sheet的Excel中的其中一个Sheet插入或保存数据

using(MemoryStreamms=DataGridViewToExcel(myDgv,Path.GetExtension(strFileName),strShee... using (MemoryStream ms = DataGridViewToExcel(myDgv, Path.GetExtension(strFileName), strSheetName, strHeaderText, titleNames))
{

//此处有重大问题
using (FileStream fs = new FileStream(strFileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
byte[] data = ms.ToArray();
fs.Write(data, 0, data.Length);
fs.Flush();
}
}
顺带一提,最好兼容2007....主要问题有两个,第一我的Excel有几个表,我往其中一个表插入数据的时候就会只保存这个表并覆盖了整个Excel结果就只有一个表,第二....2007各种不会
展开
 我来答
dalmeeme
推荐于2017-09-30 · TA获得超过2915个赞
知道大有可为答主
回答量:1493
采纳率:81%
帮助的人:1068万
展开全部
			string fileName = @"f:\2015光盘内容一览.xls";
HSSFWorkbook workbook;
using (FileStream stream = File.OpenRead(fileName))
workbook = new HSSFWorkbook(stream);
ISheet sheet = workbook.GetSheet("菜鸟"); //获取名称是“菜鸟”的表。
IRow row = sheet.CreateRow(0); //在第一行位置创建一行。
row.CreateCell(0).SetCellValue("测试"); //在第一列位置创建一列,并赋值“测试”。
using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
workbook.Write(fs);

以上示例,读取xls文件,然后在“菜鸟”表第一行第一列填写文本"测试"并保存更新。

更多追问追答
追问
保存是能保存.问题是保存完了我三个sheet只剩下一个
追答
上面代码测试过可以的。测试文件是2003版的,里面包含4个sheet,更新后仍然是4个sheet
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式