想做个小程序 涉及到Excel的读取 大家教教我哈~

chenchenyangll 2010-07-02 06:09:30
想做个小程序 涉及到Excel的读取 大家教教我哈~

因为是小程序 所以如果很复杂的方法就算了

主要是读取Excel文件 读取指定行 指定列 指定单元格 这些功能就够了 别的就不必了~

如果有写入Excel文件的代码 也可以留下啊~ 谢谢啦~~
...全文
704 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenchenyangll 2010-07-02
  • 打赏
  • 举报
回复
6L的总体来说是对的

只不过Cell 那里好像有点不对
我的方法是用
Microsoft.Office.Interop.Excel.Range range = RSsheet.get_Range("A" + i, Type.Missing);
// "A"+i 表示单元格
然后 range.Text.ToString() 就是单元格内的内容 具体的实践一下就清楚了
davinical 2010-07-02
  • 打赏
  • 举报
回复
string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection objConn = new OleDbConnection(strConn);
DataSet dsExcel = new DataSet();
try
{
objConn.Open();
string strSql = "select TOP 10 * from [Sheet1$]"; //修改这条SQL,应该能实现从第几条到第几条
OleDbDataAdapter odbcExcelDataAdapter = new OleDbDataAdapter(strSql, objConn);
odbcExcelDataAdapter.Fill(dsExcel);
return dsExcel;
}
catch (Exception ex)
{
throw ex;
}
ouran090427 2010-07-02
  • 打赏
  • 举报
回复
好复杂啊 跟着学习 呵呵
parellax 2010-07-02
  • 打赏
  • 举报
回复
 public static DataSet ImportExcel(string file)
{
FileInfo fileInfo = new FileInfo(file);
if (!fileInfo.Exists)
return null;

string strConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file + ";Extended Properties='Excel 8.0;HDR=NO;IMEX=1'";
OleDbConnection objConn = new OleDbConnection(strConn);
DataSet dsExcel = new DataSet();
try
{
objConn.Open();
string strSql = "select TOP 10 * from [Sheet1$]"; //修改这条SQL,应该能实现从第几条到第几条
OleDbDataAdapter odbcExcelDataAdapter = new OleDbDataAdapter(strSql, objConn);
odbcExcelDataAdapter.Fill(dsExcel);
return dsExcel;
}
catch (Exception ex)
{
throw ex;
}
}
doubleu2005 2010-07-02
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Reflection;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;

namespace Excel
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

}

public class Global //定义一个全局变量类,以使用全局变量
{
public static ApplicationClass xlApp = null;
public static Workbooks xlBooks = null;
public static Workbook xlBook = null;
public static Worksheet xlSheet = null;
public static string fname = System.DateTime.Now.Year.ToString() + "-" + System.DateTime.Now.Month.ToString() + "-" + System.DateTime.Now.Day.ToString() + ".xls";
public static string strName = System.Windows.Forms.Application.StartupPath + "\\" + Global.fname;
public static FileInfo exlfile = new FileInfo(Global.strName);
}

public void GenerateExcel(string strName)
{
/* ApplicationClass xlApp = new ApplicationClass();
xlApp.Visible = false;
xlApp.Workbooks.Add(true);
Workbooks xlBooks = (Microsoft.Office.Interop.Excel.Workbooks)xlApp.Workbooks;
FileInfo exlfile = new FileInfo(strName);
Workbook xlBook = null;
if (exlfile.Exists)
{
xlBook = (Microsoft.Office.Interop.Excel.Workbook)xlBooks.Open(strName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);//打开已有工作薄
}
else
{
xlBook = (Microsoft.Office.Interop.Excel.Workbook)(xlBooks.Add(Type.Missing));//新建工作薄
}
Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.ActiveSheet;//默认工作薄当前的worksheet
//Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.Sheets.get_Item(2);//选择工作薄中的某一个worksheet
//xlSheet.Name = "Modify Production Data";//给选择的wokesheet重命名*/
int c = 1;
if (Global.xlSheet.UsedRange.Rows.Count == 1) //写标头
{
Global.xlSheet.Cells[1, 1] = "Test 1";
Global.xlSheet.Cells[1, 2] = "Test 2";
Global.xlSheet.Cells[1, 3] = "Test 3";
Global.xlSheet.Cells[1, 4] = "时间";
}
c = Global.xlSheet.UsedRange.Rows.Count + 1;
Global.xlSheet.Cells[c, 1] = "Test Header 1";
Global.xlSheet.Cells[c, 2] = "Test Header 2";
Global.xlSheet.Cells[c, 3] = "Test Header 3";
Global.xlSheet.Cells[c, 4] = System.DateTime.Now;
Global.xlSheet.Cells[c + 1, 1] = "Test Data 1";
Global.xlSheet.Cells[c + 1, 2] = "Test Data 2";
Global.xlSheet.Cells[c + 1, 3] = "Test Data 3";
Global.xlSheet.Cells[c + 1, 4] = System.DateTime.Now;
Global.xlSheet.Columns.EntireColumn.AutoFit();

//xlSheet.SaveAs(strName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing);//不定义为Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8就报格式不可识别???
/* if (exlfile.Exists)
{
xlBook.Save();
}
else
{
xlSheet.SaveAs(strName, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing);
}
xlBook.Close(false, Type.Missing, Type.Missing);
xlBooks.Close();
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);

GC.Collect();*/
// System.Diagnostics.Process.Start(strName);
}

private void button1_Click(object sender, EventArgs e)
{
//string fname = System.DateTime.Now.Year.ToString() + "-" + System.DateTime.Now.Month.ToString() + "-" + System.DateTime.Now.Day.ToString() + ".xls";
//GenerateExcel(System.Windows.Forms.Application.StartupPath + "\\"+ fname);
GenerateExcel(Global.strName);
}

private void button2_Click(object sender, EventArgs e)
{
//string fname = System.DateTime.Now.Year.ToString() + "-" + System.DateTime.Now.Month.ToString() + "-" + System.DateTime.Now.Day.ToString() + ".xls";
//string strName = System.Windows.Forms.Application.StartupPath + "\\" + fname;
//FileInfo exlfile = new FileInfo(strName);
if (Global.exlfile.Exists)
{
Global.xlBook.Save();
}
else
{
Global.xlSheet.SaveAs(Global.strName, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing);
}
Global.xlBook.Close(false, Type.Missing, Type.Missing);
Global.xlBooks.Close();
Global.xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(Global.xlSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(Global.xlBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(Global.xlBooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(Global.xlApp);

GC.Collect();
Close();

}

private void Form1_Load(object sender, EventArgs e)
{
//string fname = System.DateTime.Now.Year.ToString() + "-" + System.DateTime.Now.Month.ToString() + "-" + System.DateTime.Now.Day.ToString() + ".xls";
//string strName = System.Windows.Forms.Application.StartupPath + "\\" + fname;
//FileInfo exlfile = new FileInfo(strName);
Global.xlApp = new ApplicationClass();
Global.xlApp.Visible = true;
Global.xlApp.Workbooks.Add(true);
Global.xlBooks = (Microsoft.Office.Interop.Excel.Workbooks)Global.xlApp.Workbooks;
Global.xlBook = null;
if (Global.exlfile.Exists)
{
Global.xlBook = (Microsoft.Office.Interop.Excel.Workbook)Global.xlBooks.Open(Global.strName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);//打开已有工作薄
}
else
{
Global.xlBook = (Microsoft.Office.Interop.Excel.Workbook)(Global.xlBooks.Add(Type.Missing));//新建工作薄
}
//Global.xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)Global.xlBook.ActiveSheet;//激活第一个worksheet
Global.xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)Global.xlBook.Sheets.get_Item(2);//选择工作薄中的某一个worksheet
Global.xlSheet.Name = "Modify Production Data";//给选择的wokesheet重命名
((Microsoft.Office.Interop.Excel._Worksheet)Global.xlSheet).Activate();//激活选中的worksheet
}
chenchenyangll 2010-07-02
  • 打赏
  • 举报
回复
好吧 我先自己摸索去。。。
yao2004jessica 2010-07-02
  • 打赏
  • 举报
回复
学习一下
chenchenyangll 2010-07-02
  • 打赏
  • 举报
回复
顶上去啊 高手们留点代码吧 。。。。。。。
chenchenyangll 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mmm306306 的回复:]
读Excel方法很多。
你可以上网搜一下。

第一 将Excel做成数据库那样去读(看你的需求,不必这样了)
第二 使用Excel COM 组件去读(挺符合你的要求,但是COM组件的使用必须安装office,还有就是释放Excel)
第三 使用第三方组件。(第三方的Excel组件的存在,就有它存在的道理。建议使用第三方组件。我刚使用的是myxls 。)
[/Quote]

LS的字是怎么变成彩色的?
马老虎 2010-07-02
  • 打赏
  • 举报
回复
Excel


Excel
使Excel COM COM使officeExcel
使Excel使使myxls

110,539

社区成员

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

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

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