亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c#讀寫excel文件使用示例

2020-01-24 02:47:48
字體:
來源:轉載
供稿:網友

因為支持csv,所以就一塊寫上了
Workbook,Worksheet using Aspose.Cells(第三方)

把Excel讀取到屬性對象列表,需要傳入對象類型和文件路徑.
例:
List<PropSetCurrency> currencyList = this.GetObjectList<PropSetCurrency>(filePath);
注:Excel的表頭需要和對象名對應(可無序),且第一列不能為空


把屬性對象列表保存到Excel,需要傳入對象列表和保存的文件完整路徑.
例:
this.SetExcelList(currencyList,"c://currencyList.excel");


復制代碼 代碼如下:

/// <summary>
/// 從Excel獲取數據
/// </summary>
/// <typeparam name="T">對象</typeparam>
/// <param name="filePath">文件完整路徑</param>
/// <returns>對象列表</returns>
public List<T> GetObjectList<T>(string filePath) where T : new()
{
    List<T> list = new List<T>();
    if (!filePath.Trim().EndsWith("csv") && !filePath.Trim().EndsWith("xlsx"))
    {
return list;
    }

    Type type = typeof(T);
    Workbook workbook = new Workbook(filePath);
    Worksheet sheet = workbook.Worksheets[0];

    // 獲取標題列表
    var titleDic = this.GetTitleDic(sheet);

    // 循環每行數據
    for (int i = 1; i < int.MaxValue; i++)
    {
// 行為空時結束
if (string.IsNullOrEmpty(sheet.Cells[i, 0].StringValue))
{
    break;
}

T instance = new T();

// 循環賦值每個屬性
foreach (var item in type.GetProperties())
{
    if (titleDic.ContainsKey(item.Name))
    {
string str = sheet.Cells[i, titleDic[item.Name]].StringValue;
if (!string.IsNullOrEmpty(str))
{
    try
    {
// 根據類型進行轉換賦值
if (item.PropertyType == typeof(string))
{
    item.SetValue(instance, str);
}
else if (item.PropertyType.IsEnum)
{
    item.SetValue(instance, int.Parse(str));
}
else
{
    MethodInfo method = item.PropertyType.GetMethod("Parse", new Type[] { typeof(string) });
    object obj = null;
    if (method != null)
    {
obj = method.Invoke(null, new object[] { str });
item.SetValue(instance, obj);
    }
}
    }
    catch (Exception)
    {
// 獲取錯誤
    }
}
    }
}

list.Add(instance);
    }

    return list;
}

/// <summary>
/// 把對象List保存到Excel
/// </summary>
/// <typeparam name="T">對象</typeparam>
/// <param name="objList">對象列表</param>
/// <param name="saveFilePath">保存文件的完整路徑,包括文件類型</param>
public void SetExcelList<T>(List<T> objList, string saveFilePath)
{
    if (!saveFilePath.Trim().EndsWith("csv") && !saveFilePath.Trim().EndsWith("xlsx"))
    {
return;
    }

    Workbook workbook = new Workbook();
    Worksheet sheet = workbook.Worksheets[0];

    // 凍結第一行
    sheet.FreezePanes(1, 1, 1, 0);

    // 循環插入每行
    int row = 0;
    foreach (var obj in objList)
    {
int column = 0;
var properties = obj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.DeclaredOnly);
if (row == 0)
{
    foreach (var titName in properties)
    {
sheet.Cells[0, column].PutValue(titName.Name);
column++;
    }

    row++;
}

// 循環插入當前行的每列
column = 0;
foreach (var property in properties)
{
    var itemValue = property.GetValue(obj);
    sheet.Cells[row, column].PutValue(itemValue.ToString());
    column++;
}

row++;
    }

    workbook.Save(saveFilePath);
}

/// <summary>
/// 獲取標題行數據
/// </summary>
/// <param name="sheet">sheet</param>
/// <returns>標題行數據</returns>
private Dictionary<string, int> GetTitleDic(Worksheet sheet)
{
    Dictionary<string, int> titList = new Dictionary<string, int>();
    for (int i = 0; i < int.MaxValue; i++)
    {
if (sheet.Cells[0, i].StringValue == string.Empty)
{
    return titList;
}

titList.Add(sheet.Cells[0, i].StringValue, i);
    }

    return titList;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女av在线免费观看| 视频在线观看99| 欧美人与物videos| zzjj国产精品一区二区| 成人精品福利视频| 亚洲国产精彩中文乱码av| 亚洲日韩欧美视频一区| 亚洲福利在线播放| 色综合天天狠天天透天天伊人| 精品无人区乱码1区2区3区在线| 欧亚精品中文字幕| 7777免费精品视频| 高清在线视频日韩欧美| 热久久视久久精品18亚洲精品| 国产精品欧美在线| 国产精品直播网红| 91精品国产乱码久久久久久蜜臀| 亚洲精品国产欧美| 8x拔播拔播x8国产精品| 超碰精品一区二区三区乱码| 欧美理论电影在线观看| 最近2019年好看中文字幕视频| 久久九九全国免费精品观看| 国内精品久久久| 亚洲男人天堂古典| 亚洲男女性事视频| 国产亚洲精品综合一区91| 97人洗澡人人免费公开视频碰碰碰| 国产亚洲成av人片在线观看桃| 青青草原一区二区| 97精品免费视频| 日韩欧美亚洲成人| 国产日韩在线看片| 亚洲国产精品久久精品怡红院| 欧美激情精品久久久久久久变态| 亚洲成人激情图| 亚洲天堂第二页| 国内精品久久久久久久| 性欧美视频videos6一9| 最近2019年手机中文字幕| 中文字幕最新精品| 日本高清视频精品| 国产精品69av| 国产亚洲精品高潮| 日韩欧美成人精品| 国产精品91久久久久久| 亚洲精品资源美女情侣酒店| 亚洲高清免费观看高清完整版| 欧美又大粗又爽又黄大片视频| 亚洲新中文字幕| 欧美激情手机在线视频| 亚洲国产精品字幕| 岛国精品视频在线播放| 欧美精品中文字幕一区| 久久香蕉国产线看观看av| 久久成人综合视频| 韩国视频理论视频久久| 欧美日韩国产色视频| 亚洲精品视频免费| 国产精品一区久久| 欧美放荡办公室videos4k| 亚洲国产中文字幕在线观看| 久久久爽爽爽美女图片| 国产成人精彩在线视频九色| 国产精品高精视频免费| 亚洲欧美国产视频| 欧美激情视频在线免费观看 欧美视频免费一| 欧美成人手机在线| 久久夜色精品国产欧美乱| 91日本在线视频| 日韩网站免费观看| 精品久久久久久久久久久久久| 亚洲精品中文字幕有码专区| 欧美性猛交xxxx免费看久久久| 久久免费视频观看| 成人激情免费在线| 免费91麻豆精品国产自产在线观看| 亚洲天堂成人在线视频| 97视频在线观看免费| 91精品久久久久久久久久久| 最近2019年中文视频免费在线观看| 久久噜噜噜精品国产亚洲综合| 97视频在线观看网址| 国产精品扒开腿做爽爽爽的视频| 最近2019年手机中文字幕| 欧美不卡视频一区发布| 日韩欧美中文第一页| 亚洲第一中文字幕在线观看| 亚洲国产精品网站| 中文字幕亚洲一区在线观看| 国产精品自产拍在线观看| 欧美在线免费视频| 欧美激情一区二区三级高清视频| 91亚洲精品在线| 国产又爽又黄的激情精品视频| 欧美黑人性生活视频| 国产精品专区第二| 国产视频久久久久久久| 欧美插天视频在线播放| 在线日韩第一页| 欧美精品一区三区| 欧美日本啪啪无遮挡网站| 日韩在线观看成人| 国产精品久久久久9999| 日韩电影免费观看在线观看| 91精品国产综合久久香蕉最新版| 久久99国产精品自在自在app| 亚洲三级av在线| 尤物yw午夜国产精品视频明星| 亚洲国产精品久久久久秋霞不卡| 久久久噜噜噜久噜久久| 精品成人69xx.xyz| 国内精品久久久久| 国产精品一区二区三区成人| 国产免费一区二区三区在线能观看| 亚洲欧美激情精品一区二区| 欧美最猛性xxxxx免费| 国产精品日日做人人爱| 国产亚洲福利一区| 伊人青青综合网站| 国产一区红桃视频| 国产亚洲精品一区二555| 成人欧美在线观看| 国产91九色视频| 亚洲国产精品女人久久久| 成人av番号网| 欧美激情视频在线观看| 国产日韩中文字幕| 日韩av色综合| 亚洲www在线| 国产自摸综合网| 国产精品偷伦视频免费观看国产| 久久久国产精品一区| 亚洲欧美一区二区激情| 91av在线精品| 91国内在线视频| 久久久噜久噜久久综合| 国产中文字幕91| 91在线观看欧美日韩| 久久久999国产| 国产精品伦子伦免费视频| 中文字幕亚洲第一| 亚洲成人999| 精品国产一区二区三区在线观看| 欧美日韩国产成人在线观看| 精品久久久久久中文字幕大豆网| 热久久美女精品天天吊色| 91成品人片a无限观看| 98精品在线视频| 国产精品久久久久av| 欧美成年人视频网站| 国产成人精品久久二区二区91| 国产成人福利夜色影视| 欧美成人精品影院| 国产一区深夜福利| 亚洲人成在线免费观看| 亚洲国产日韩欧美在线99| 一区二区三区国产在线观看| 国产精品久久99久久| 国产成人久久久精品一区| 久久久久久久久久亚洲| 亚洲欧美精品中文字幕在线| 久久99精品久久久久久琪琪| 亚洲成人av资源网|